在c ++中使用Boost Threads的基本程序问题

时间:2010-05-14 17:06:02

标签: c++ boost multithreading

我有一个简单的程序,它使用c ++中的boost线程创建并执行为线程。

#include<boost/thread/thread.hpp>
#include<iostream>


void hello()
{

    std::cout<<"Hello, i am a thread"<<std::endl;

}

int main()
{
    boost::thread th1(&hello);
    th1.join();


}

编译器针对th1.join()行抛出错误。它说 “
         此行有多个标记

- undefined reference to 

 `boost::thread::join()'

- undefined reference to 

 `boost::thread::~thread()'

2 个答案:

答案 0 :(得分:1)

这肯定是不包括适当的标题/链接库的问题。

1)您应检查包含路径是否包含适当的boost文件夹和提升标头。 2)您应该使用适当的静态库(xxx.lib)文件构建应用程序。对于boost :: thread,该文件的名称类似于libboost_thread_xxx.lib

答案 1 :(得分:1)

在Eclipse中,右键单击项目并转到“属性”。

转到C / C ++构建 - &gt;设置 - &gt;工具设置

接下来,打开GCC C ++ Linker下的Libraries部分。

在Libraries(-l)面板中添加值为boost_thread的条目。

(我假设您使用的是Linux,如果没有查看This question