您好我需要在Linux上build立一个项目,但它使用“boost / interprocess / windows_shared_memory.hpp”是任何方式来在Linux上运行它,或者我必须重写这个代码?
谢谢
在Windows 7上使用boost来设置Clion
无法find请求的Boost库Windows Cmake
提升Asio单线程性能
我想你只是需要使用
#include <boost/interprocess/managed_shared_memory.hpp>
而不是boost/interprocess/windows_shared_memory.hpp 。 这将处理Windows和Linux。
你不能在你的Linux平台上使用特定于windows的代码,而是使用一些#ifdef __WIN32__//#else//#endif和一些合适的typedef或者类似的方法来使用标准(非Windows)共享内存体系结构在Linux上。
您应该能够使用正规的共享内存架构,而不必对现有代码进行修改或进行最小限度的修改。
比较: http : //www.boost.org/doc/libs/1_54_0/doc/html/interprocess/sharedmemorybetweenprocesses.html与(在同一页面下面的部分) http://www.boost.org/doc/库/ 1_54_0 / DOC / HTML /间/ sharedmemorybetweenprocesses.html#interprocess.sharedmemorybetweenprocesses.sharedmemory.windows_shared_memory
如果你看这里 ,你会看到:
#if !defined(BOOST_INTERPROCESS_WINDOWS) #error "This header can only be used in Windows operating systems" #endif
所以,是的,你需要将它移植到linux上运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。