我已经从SVN repo(trunk,rev 601)构建了boost.log,并尝试将其包含在可执行文件中。 lib可以从VS2008使用,但不能用于bjam。
我尝试使用其他boost库来为boost.log lib设置别名,但是我收到错误: “无法找到名为'/ boost / log'的文件或目标”
Boost是从源代码构建的(下面的命令),我对v1.45和v1.46.1也有同样的问题
alias libboostpo : /boost//program_options : <link>static <threading>multi ;
alias libboostfs : /boost//filesystem : <link>static <threading>multi ;
alias libboostlog : /boost//log : <link>static <threading>multi ;
alias libfoundation : /path-foundation//foundation : <link>static <threading>multi ;
alias libtestcommon : /path-testcommon//testcommon : <link>static <threading>multi ;
exe foundationtest
: libfoundation libtestcommon
libboostpo libboostfs
libboostlog
libgtest_win libggmock_win
[ glob-tree *.cpp *.rc ]
: <toolset>msvc
;
bjam install variant=debug,release link=static,shared -j8 --prefix=%OutputPath% -s ZLIB_SOURCE=%PathToCOTS%\zlib --without-python --without-mpi --without-wave --without-test --without-graph --without-math --toolset=msvc >> %logFile%
答案 0 :(得分:3)
Boost日志库尚未成为官方的升级库。 (我不知道在审核过程中它有多远,但我没有在Boost的svn trunk中看到它。)因此,它不在提供的boost.jam文件中({{3 }})。
虽然boost.jam往往有点落后于实际提供的库,所以也许我错了。我不熟悉日志库,但是,如果你想将它添加到你的boost.jam文件,很可能,你需要将这行(或类似的东西)添加到库列表中:
lib log
: filesystem
system
date_time
thread
regex
:
:
: <link>shared:<define>BOOST_LOG_DYN_LINK ;
库列表大约是boost_std规则中文件的三分之二。 (你不能错过它。那里定义了25个其他库。)这只有在日志库使用与其他boost库相同的命名约定时才有效。
另一个选择是编写自己的lib规则并自己指向该版本。那将是粗略的
lib libboostlog
: /boost//headers
/boost//filesystem
/boost//system
/boost//date_time
/boost//thread
/boost//regex
: <name>boost_log
<link>static
<threading>multi ;
(取自current trunk version的依赖关系列表。)