错误:'size_type'不是'boost :: interprocess :: message_queue'的成员

时间:2014-07-31 06:04:13

标签: c++ linux boost boost-interprocess

该程序正在我的朋友系统中正确编译和运行,但是当我尝试在我的系统上执行时,它会在下一行显示上述错误。

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'的成员

3 个答案:

答案 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的回答。