我正在使用bjam为MinGW构建Boost(我正在使用System和FileSystem):
bjam --toolset=gcc stage
它构建良好,但我希望能够静态链接到它(我必须有一个文件用于最终产品)所以我尝试了:
bjam --link=static --toolset=gcc stage
但我得到了相同的输出。有什么想法吗?
编辑连续发表的第二个问题我在发帖后回答了几个问题:p猜我会把这个问题留给其他人了。
bjam --build-type=complete --toolset=gcc stage
肯定会建立动态和静态。
答案 0 :(得分:41)
我认为link是一个属性,而不是bjam的选项。这意味着在它之前应该没有。
这是我只用于构建静态库的命令行(虽然是visual c ++):
bjam install --toolset=msvc variant=release link=static threading=multi runtime-link=static
将其映射到原始构建命令我会说它看起来像这样:
bjam --toolset=gcc link=static stage
或者也许:
bjam stage --toolset=gcc link=static
尝试运行
bjam --help
了解有关bjam的属性和选项的更多信息。
答案 1 :(得分:8)
请注意,随着更新的提升(2011年2月),您现在也需要构建bjam ..由于某种原因,当前可下载的bjam无法正常工作。
首先:
cd ...\boost_1_45_0\tools\build\v2\engine\src
build.bat mingw
您需要将bjam添加到PATH(从控制面板,而不仅仅是在cmd提示符下)。然后
cd ...\boost_1_45_0\
bjam --build-type=complete --toolset=gcc stage
我的设置是Vista,Boost 1.45,MinGW 4.5,并且从cmd.exe构建而不是msys。
http://code-slim-jim.blogspot.com/2011/02/boost-in-vista-using-mingw-and-cmdexe.html
答案 2 :(得分:0)
我自己没有在MinGW中构建这个,但我相信你的第一个构建将输出动态和静态库,第二个只输出静态库,所以如果你没有在构建之间清理构建目录,它可能看起来一样。
当您写“我必须有一个文件......”时,您是否意味着您需要一个包含所有增强库的库?如果是这样,我怀疑你可能不得不自己一起'''他们。
答案 3 :(得分:0)
我使用以下命令行来构建boost的静态链接版本和动态链接版本:
bjam "-sBUILD=debug release <runtime-link>static/dynamic <threading>multi" stage
这是通过Windows YMMV上的visual c ++完成的。