繁体   English   中英

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

[英]error: ‘size_type’ is not a member of ‘boost::interprocess::message_queue’

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

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

您的编译器会告诉您确切的问题。 这里描述的boost::interprocess::message_queue没有size_type元素。 那里有一些返回size_type函数,因此您可能会对做这样的事情感兴趣:

int maxMessages = myMessageQueue.get_max_msg();

可能需要指定boost的标头在哪里。

-I /<path_boost>/include

如果在:

/usr/local/include

您需要此链接。 这是因为默认情况下未指定Linux的PATH

如果您打开控制台和数字:

echo $PATH

您会看到“可见”的路径。

如果要修改它:

sudo nano /etc/environment

并将字符串添加到PATH:

:/usr/local/include

UPDATE
最后一步,注销+登录或刷新/ etc / environment,请看这里

如果将其更改为std::size_t ,它将起作用,但是我认为有效的方法是遵循@Velthune的回答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM