我尝试使用 g++ 4.4 在 Debian 的远程服务器上编译带有 boost 库的小 .cpp 文件。我为此目的使用 Netbeans。我的家用机器运行的是 Windows 7。解决了链接下一个代码的一些问题后
#include <boost/timer/timer.hpp>
#include <iostream>
#include <string>
int main()
{
boost::timer::auto_cpu_timer ac; //line 5
return 0; //line 6
}
产生 2 个错误:
第5行:
undefined reference to boost::timer::auto_cpu_timer::auto_cpu_timer(short)'
undefined reference to boost::timer::auto_cpu_timer::~auto_cpu_timer()'
如果我使用 header
boost/thread.hpp
但对于线程构造函数/析构函数,结果相同。
但例如 boost/shared_ptr
编译没有任何问题。
在neatebeans中的结果编译命令是g++ -m64 -I/usr/include/boost/boost_1_49_0 -lboost_system -o dist/Debug/GNU-Linux-x86/test build/Debug/GNU-Linux-x86/main.o
-L/usr/include/boost/boost_1_49_0/stage/lib -Wl,-rpath /usr/include/boost/boost_1_49_0/stage/lib build/Debug/GNU-Linux-x86/main.o
我错过了什么?
您需要链接到 boost_timer。将
-lboost_timer
添加到 gcc 命令行。有关如何向项目添加库的信息,请参阅 Netbeans 文档。