微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Linux上提升windows_shared_memory

您好我需要在Linux上build立一个项目,但它使用“boost / interprocess / windows_shared_memory.hpp”是任何方式来在Linux上运行它,或者我必须重写这个代码

谢谢

在Windows 7上使用boost来设置Clion

无法find请求的Boost库Windows Cmake

提升Asio单线程性能

提升库名称缺less版本标记

提升主题:使用已删除函数错误

我想你只是需要使用

#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] 举报,一经查实,本站将立刻删除。

相关推荐