Boost 是我直接 sudo apt-get install 的,系统会帮我安装到 usr/include/boost 和 usr/lib 下,因此我可以直接使用 -lboost_system 库, 或直接 include <boost/thread.hpp> 而不用做额外的配置
#include <boost/thread.hpp> #include <iostream> #include <stdio.h> class SpecificWork { private: int p_; public: SpecificWork(int value) : p_(value) { } void operator()() { printf("Value is %d ", p_); } }; void hello(int value) { printf("hello %d ", value); } int main() { int i = 1; SpecificWork work(i); boost::thread worker(&hello, i); //ok worker.join(); }
假设我已经写好这段程序了, 在命令行下直接编译的命令:
g++ sample.cpp -lboost_system -lboost_thread
现在,我把这段程序复制到 eclipse 下, 唯一需要修改的配置是:
右击项目,properties, settings, GCC C++ Linker, Libraries, Libraries(-l) 中添加两项 boost_system, boost_thread
另外, Library Search Path 是对那些没有将 boost library 放到系统默认库(/usr/lib)的同学准备的
这都是自己逐渐摸索出来的, eclipse 的配置无非是将手动转成自动, 当配置卡住时,可以参考编译程序时控制台的输出, 比如刚开始我在 eclipse 库中写的是 -lboost_system, 发现控制台出现的是 -l -lboost_system. 我再用命令行编译一遍,发现编译失败,于是就去掉了 -l 编译成功。