您好我需要在Linux上建立一個項目,但它使用「boost/interprocess/windows_shared_memory.hpp」 是任何方式來在Linux上運行它,或者我必須重寫這段代碼?boost linux_shared_memory linux上
感謝
您好我需要在Linux上建立一個項目,但它使用「boost/interprocess/windows_shared_memory.hpp」 是任何方式來在Linux上運行它,或者我必須重寫這段代碼?boost linux_shared_memory linux上
感謝
我想你只需要使用的
#include <boost/interprocess/managed_shared_memory.hpp>
代替boost/interprocess/windows_shared_memory.hpp
。這將處理Windows和Linux。
如果你看here,你會看到:
#if !defined(BOOST_INTERPROCESS_WINDOWS)
#error "This header can only be used in Windows operating systems"
#endif
所以,是的,你需要將它移植到Linux上運行。
您不能在Linux平臺上使用特定於Windows的代碼,但要使用一點點的#ifdef __WIN32__//#else//#endif
以及一些適當的typedef或類似的代碼,以便在Linux上使用標準(非Windows)共享內存體系結構。
您應該可以使用常規的共享內存架構,而不必對現有代碼進行修改或對其進行最小限度的修改。
比較: http://www.boost.org/doc/libs/1_54_0/doc/html/interprocess/sharedmemorybetweenprocesses.html 用(A節中的同一頁進一步下跌) http://www.boost.org/doc/libs/1_54_0/doc/html/interprocess/sharedmemorybetweenprocesses.html#interprocess.sharedmemorybetweenprocesses.sharedmemory.windows_shared_memory