C++ 建筑推进BCP
在过去的两个小时里,我一直在尝试构建,但没有任何结果。由于我是C++新手,我不能正确地构建。如何使用VisualStudio2008正确构建它 我需要使用BCP工具来提取库的子集。所以我需要先建立BCP,对吗?如何做到这一点?当我试图构建它时,我得到了以下错误 致命错误LNK1104:无法打开文件“libboost_filesystem-vc90-mt-gd-1_37.lib”C++ 建筑推进BCP,c++,boost,C++,Boost,在过去的两个小时里,我一直在尝试构建,但没有任何结果。由于我是C++新手,我不能正确地构建。如何使用VisualStudio2008正确构建它 我需要使用BCP工具来提取库的子集。所以我需要先建立BCP,对吗?如何做到这一点?当我试图构建它时,我得到了以下错误 致命错误LNK1104:无法打开文件“libboost_filesystem-vc90-mt-gd-1_37.lib” 在哪里可以获取上述给定的库文件?首先,您需要在命令shell中具有正确的路径、INCLUDE和LIB环境变量。为此,使
在哪里可以获取上述给定的库文件?首先,您需要在命令shell中具有正确的路径、INCLUDE和LIB环境变量。为此,使用以下参数调用文件“
vcvvarsall.bat
”(或类似文件):
vcvarsall.bat x86
接下来,您必须构建bjam(您也可以从Boost页面下载它,但速度几乎一样快)。转到Boost中的tools\jam\src
文件夹并键入:
build.bat
..\..\bjam.exe --toolset=msvc
它应该生成一个子文件夹bin.ntx86
,其中包含bjam.exe。为方便起见,请将其复制到Boost主文件夹。接下来,您可以构建bcp。进入tools\bcp
文件夹并键入:
build.bat
..\..\bjam.exe --toolset=msvc
回到Boost主文件夹,您可以构建任何您想要的库:
bjam toolset=msvc –-with-{library}
其中,{library}
是要构建的库之一。所有可构建的库都可以显示为:
bjam –-show-libraries
还有更多的bjam构建参数。可以指定关键字的某些参数包括:
variant=debug|release
link=shared|static
threading=multi|single
例如:
bjam toolset=msvc –-with-filesystem threading=multi variant=debug stage
有关更多信息,请访问
编辑:更新了指向最新Boost文档的链接
编辑:更正的选项—使用-{library}和–-show libraries注意,您不需要从源代码构建Windows版本的bcp—您还可以从下载二进制版本,并跳过所有这些步骤
(或者,至少理论上是这样——我没有试过;我只是在寻找预构建的Linux版本时找到了该页面和该页面。)当前版本的Boost(1.50.0)使用Boost.Build。构建bcp的新工作流如下所示: 在根Boost目录中,键入:
bootstrap.bat
然后,构建Boost.Build后,键入:
b2 tools/bcp
我提取了源代码:(您不需要配置BOOST,因为所有源代码都已经包含在内)
在Linux上,cmake
+make
构建:
# cd source_dir
mkdir build && cd build
cmake ..
make
在Windows上:创建CMake GUI+Visual Studio。需要帮助吗?看
我的可执行文件:
- 视窗:(561KB)
- Linux:(917KB)
- macOS:(801KB)
提示:如果在使用Boost时在Windows上遇到链接问题,请查看
Boost/config/auto_link.hpp
,您会明白的。要解决此问题,您只需注释掉整个文件。谢谢您的精彩回答!这对我帮助很大。它是——使用-{library}
和——显示库
。两个“-”,不是一个。谢谢KTC,文件上也这么说。我更正了答案。在boost 1.46中使用这些说明时存在一些问题,包括缺少工具/卡纸
,以及缺少工具/卡纸的解决方法(至少在1.48中);运行bootstrap.bat,它会将bjam复制到主boost文件夹。注意:站点需要注册才能启用下载。默认情况下,它似乎也不会为您提供bcp。。无论如何,您必须自己构建它。Windows bcp二进制文件可以从这里下载:生成的二进制文件位于dist/bin/bcp。我已经完成了3个步骤:>bootstrap.bat>\b2>\b2 tools/bcp
,然后我可以使用它:C:\Users\pedro\dev-VS2008\boost\u 1\u 59\u 0>dist\bin\bcp boost\tokenizer.hpp C:\Users\pedro\dev-VS2008\MyProject\boost_1_59_0Kudos提供二进制文件!为我节省了大概8小时的编译时间。顺便说一下,编译时间不到1分钟。编译只是boostbcp,而不是整个boost。