该程序正在我的朋友系统中正确编译和运行,但是当我尝试在我的系统上执行时,它会在下一行显示上述错误。
message_queue::size_type recvd_size;
I am also included the namespace
using namespace boost::interprocess;
我已使用sudo apt-get install libboost-all-dev
安装了最新的boost库,但编译器再次显示错误消息
错误:'size_type'不是'boost :: interprocess :: message_queue'的成员
答案 0 :(得分:2)
您的编译器正在告诉您究竟出了什么问题。 {strong> here 所述的boost::interprocess::message_queue
没有size_type
元素。那里有一些返回size_type
的函数,所以你可能会对这样的事情感兴趣:
int maxMessages = myMessageQueue.get_max_msg();
答案 1 :(得分:2)
可能你需要指定boost标题的位置。
-I /<path_boost>/include
如果它在:
/usr/local/include
您需要此链接。这是因为默认情况下没有指定linux的 PATH 。
如果您打开控制台并使用数字:
echo $PATH
你会看到什么路径是“可见的”。
如果你想修改它:
sudo nano /etc/environment
并向PATH添加字符串:
:/usr/local/include
<强>更新强>
最后一步,注销+登录或刷新/ etc / environment,查看here。
答案 2 :(得分:1)
如果您将其更改为std::size_t
它会起作用,但我认为有效的方法是遵循
@ Velthune的回答。