C++ 使用Eclipse编译boost::thread
我正在使用Ubuntu+Eclipse并安装了boost(不确定是否正确)。我使用apt-get-install-libboost安装了Boost* 我测试了一些简单的代码,它似乎可以正常工作 但是,当我尝试学习线程部分时,下面的代码不起作用C++ 使用Eclipse编译boost::thread,c++,boost,C++,Boost,我正在使用Ubuntu+Eclipse并安装了boost(不确定是否正确)。我使用apt-get-install-libboost安装了Boost* 我测试了一些简单的代码,它似乎可以正常工作 但是,当我尝试学习线程部分时,下面的代码不起作用 #include <boost/thread/thread.hpp> #include <iostream> using namespace std; void hello() { cout<<"hello!"
#include <boost/thread/thread.hpp>
#include <iostream>
using namespace std;
void hello()
{
cout<<"hello!"<<endl;
}
int main()
{
boost::thread thrd(&hello);
cout<<"Just a test!"<<endl;
}
如果我的问题太天真,请原谅我。请提供任何你认为可以帮助我的信息 您必须使用Boost链接线程库libboost\u thread…有时,您只需告诉链接库的位置,它就会确定要链接的线程库。添加链接器-> 1.右键单击项目 2.在“属性”窗口中选择 3.单击c/c++版本 4.选择设置 5.选择图书馆
6.然后你可以添加链接器:boost_线程和boost_系统等谢谢你的快速评论。这是Eclipse的问题吗?那么在Eclipse中如何做到这一点呢?我想当我在Ubuntu上安装boost时,我不需要使用Eclipse。不,这不是Eclipse的问题,你必须为链接器指定一个选项(检查项目选项),比如-lboost_thread-gcc-4.3或类似的,你必须先找到库才能找到它的名称,您很可能还必须链接到pthread。您必须链接到pthread。我不得不这样做。自动链接在G++中不起作用,它是VisualC++的特性,所以在*nix下不可用。
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/detail/thread.hpp undefined reference to `boost::detail::thread_data_base::~thread_data_base()' FirstCppProject line 40 1260656497961 200
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/detail/thread.hpp undefined reference to `boost::thread::start_thread()' FirstCppProject line 191 1260656497967 202
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/pthread/thread_data.hpp undefined reference to `vtable for boost::detail::thread_data_base' FirstCppProject line 65 1260656497965 201
Severity and Description Path Resource Location Creation Time Id
undefined reference to `boost::thread::~thread()' FirstCppProject test.cpp line 15 1260656497959 199