2
背景:使用Boost.Interprocess的Android C++ IPC - 它應該工作嗎?
我已經在使用Boost IPC訪問共享內存的Linux上使用C++代碼,並且我想將它移植到android。我下載並構建了這裏找到的Boost-for-Android項目:https://github.com/MysticTreeGames/Boost-for-Android。
問題:
然而,當我嘗試創建一個名爲互斥這樣的提升:
boost::interprocess::named_mutex named_mtx(boost::interprocess::open_or_create, "my_mutex");
我得到一個異常說用本機代碼「沒有這樣的文件或目錄」 2.
附加信息:
當我搜索如何使用Android上的共享內存時,它看起來ashmem和Binder是流行的方法,我找不到refe在移植的Boost IPC代碼中完全依賴它們。
問題:
- 什麼是對「沒有這樣的文件或目錄」錯誤的原因是什麼?
- 有人可以確認Boost-for-Android IPC部分工作嗎?
非常好的問題。我也對此感興趣。你是否嘗試排除權限? (你可以以root身份運行進程嗎?)。也許shmem內核位被保護(或者在最壞的情況下不存在)。 – sehe
該進程以root訪問權限運行。我將檢查共享內存內核位是否存在(但是我的代碼是如何編譯的?)。 –
交叉編譯_implies_,您只需編譯(希望兼容)一組內核頭文件/系統庫。與往常一樣,模塊可能會被列入黑名單,因此在重新啓動時甚至可能會丟失模塊。並想起rmmod – sehe