我正在为我的项目使用boost。我有一个用户帐户(没有sudo权限),升级1.41,我的项目至少需要提升1.53,所以我想使用自定义boost-build目录来编译我的程序。我已经成功地在我的系统上构建了增强功能。但我不知道如何将它们与我的可执行文件链接。我正在使用Jamfiles进行代码编译。
我已经成功完成了单个文件。例如。
#include <boost/version.hpp>
#include <iostream>
using namespace std;
int main()
{
cout << "Boost version: " << BOOST_LIB_VERSION << endl;
return 0;
}
但是当我使用命令编译并运行它时:
[user@server ~]$ g++ -std=c++11 test.cpp
[user@server ~]$ ./a.out
Boost version: 1_40
如果我这样做:
[user@server ~]$ g++ -I boost_1_53_0/ test.cpp -L~/boost/stage/lib
[user@server ~]$ ./a.out
Boost version: 1_53
这意味着在第二种方法中,我没有使用系统的提升,而是使用我自己构建的boost lib。这就是我想使用Jamfile
和Jamroot
文件对我的NB项目进行的操作。
我的Jamroot lib目标包含以下字段:
lib boost_system : :
<link>shared
<name>boost_system ;
lib boost_thread : :
<link>shared
<name>boost_thread ;
lib boost_program_options : :
<link>shared
<name>boost_program_options ;
lib boost_iostreams : :
<link>shared
<name>boost_iostreams ;
我想我必须添加&#34; path / to / build&#34;它。但我还没有尝试过。
My Boost目录:
boost_1_53_0
...
stage/lib/[lib files]
积DIR:
build-dir/boost/bin.v2/
config.log
libs/
更新:为lib目标添加搜索路径无济于事
lib boost_iostreams : :
<link>shared
<search>"path/to/boost"
<name>boost_iostreams ;
请帮助我!