win7下为VS2010安装boost库 命令行运行bootstrap.bat时提示failed to build Boost.Build engine
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win7下为VS2010安装boost库 命令行运行bootstrap.bat时提示failed to build Boost.Build engine相关的知识,希望对你有一定的参考价值。
win7下为VS2010安装boost库 命令行运行bootstrap.bat时提示failed to build Boost.Build engine 打开bootstrap.log发现提示
d:\lib\boost_1_61_0\tools\build\src\engine\jam.h(71) : fatal error C1083: 无法打开包括文件:“ctype.h”: No such file or directory
filesys.c
d:\lib\boost_1_61_0\tools\build\src\engine\jam.h(71) : fatal error C1083: 无法打开包括文件:“ctype.h”: No such file or directory
builtins.c
d:\lib\boost_1_61_0\tools\build\src\engine\jam.h(71) : fatal error C1083: 无法打开包括文件:“ctype.h”: No such file or directory
md5.c
md5.c(55) : fatal error C1083: 无法打开包括文件:“string.h”: No such file or directory
class.c
d:\lib\boost_1_61_0\tools\build\src\engine\strings.h(11) : fatal error C1083: 无法打开包括文件:“stddef.h”: No such file or directory
cwd.c
d:\lib\boost_1_61_0\tools\build\src\engine\jam.h(71) : fatal error C1083: 无法打开包括文件:“ctype.h”: No such file or directory
w32_getreg.c
d:\lib\boost_1_61_0\tools\build\src\engine\jam.h(71) : fatal error C1083: 无法打开包括文件:“ctype.h”: No such file or directory
正在生成代码...
正在编译...
native.c
d:\lib\boost_1_61_0\tools\build\src\engine\strings.h(11) : fatal error C1083: 无法打开包括文件:“stddef.h”: No such file or directory
set.c
d:\lib\boost_1_61_0\tools\build\src\engine\strings.h(11) : fatal error C1083: 无法打开包括文件:“stddef.h”: No such file or directory
path.c
d:\lib\boost_1_61_0\tools\build\src\engine\strings.h(11) : fatal error C1083: 无法打开包括文件:“stddef.h”: No such file or directory
regex.c
d:\lib\boost_1_61_0\tools\build\src\engine\modules\../mem.h(67) : fatal error C1083: 无法打开包括文件:“stdlib.h”: No such file or directory
这里没截全,大概就是说找不到这三个头文件
求解,网上说的设置系统环境变量“Path”加上C:\Windows\System32 的方法试了没用
1. 概述
Boost库的安装的方法,IDE涉及DEV C++和VS 2008。
2. 下载
SVN下载链接,文件保存在“D:\Boost”下:参见网页 http://www.boost.org/users/download/,对于1.46版本的Boost,如果完全编译后,可能需要12-15GB的空间,虽然还没编译就占了3GB。
3. VS2008 Boost库编译(-vc9)
首先,编译bjam,在命令行下,运行bootstrap.bat -vc9
然后,编译库。在命令行下,运行:
bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="D:\Boost\bin\vc9" link=static runtime-link=shared threading=multi debug release
bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="D:\Boost\bin\vc9" link=static runtime-link=static threading=multi debug release
编译用了50分钟左右,产生了303MB的文件。
4. VS2008 Boost库配置
Tools -> Options -> Projects and Solutions -> VC++ Directories
在Library files中,增加D:\Boost\bin\vc9\lib
在Include files中,增加D:\Boost\
其中,Library的目录就是前面编译产生的那些库文件保存到的位置
其中,Include的目录随着Boost的不同版本会不同,现在1.47版本只要指定为D:\Boost即使用SVN下载Boost的文件夹就可以了。 参考技术A 可能是安装的boost库版本不对,试试其他版本的吧 参考技术B 遇到了一样的问题 想问问是怎么解决的?
使用VS2015 编译 64位的boost库
别人写的编译参考:
目标:使用VS2015 编译 64位的boost库。
一直以来都是在Win32环境下Build和使用boost,但现在基本上每天都在64位Win7下工作,所以很有必要把这几天的经验总结下来。
1. 下载并解压boost 1.61.0 压缩包
2. 解压并运行批处理文件bootstrap.bat,目录下会生成两个可执行文件
3. 和32位环境不同,x64环境下编译得先从开始菜单启动Visual Studio的VS2015 x64 Native Tools Command Prompt 进入命令提示符,而不是随便打开任意一个命令行窗口就行。
4. 然后cd到boost根文件夹,运行bootstrap.bat生成x64版的b2.exe 和 bjam.exe (他们只是版本不同的产物,但是用法一致,bjam是之前版本的,b2 是最新的)
5. 然后运行命令:
b2 --build-type=complete toolset=msvc-14.0 threading=multi link=shared address-model=64
即可生成DLL版平台库,如果要编译静态库版就把shared改为static。
- 只生成一个库的话加上例如--with-python得编译选项,避免生成东西太多、时间太长。
- 要有address-model=64属性,如果没有这个属性的话,会默认生成32位的平台库,加入这个选项才能生成64位的DLL。
- 如果要生成Boost.Python库,需要先下载安装x64版的Python安装包,我用的版本是3.2.3。在使用这个库编写Python扩展DLL时,默认是使用动态库版的Boost.Python,要使用静态版的必须在C++项目中定义BOOST_PYTHON_STATIC_LIB宏,这样就不用在使用或发布扩展时带着boost_python-vc90-mt-1_50.dll一起了,当然扩展DLL的尺寸会大些,如果做实验没必要这样,编译又慢生成的文件也大。
我的过程如下:
1.下载1.63.0版本的boost库,放置D:oost_1_63_0
2.编译64位的boost需要在VC 提供的命令提示符进行操作。
3.开始转到boost根目录,运行bootstrap.Bat生成X64版本的bjam.exe和b2。
4.
B2是新版,然后运行命令:64位静态库
b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:oost_1_63_0lib64-msvc-14" address-model=64 link=static runtime-link=static threading=multi debug release
64位的动态库
b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:oost_1_63_0lib64-msvc-14" address-model=64 link=static runtime-link=shared threading=multi debug release
我是用的是:
b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:oost_1_63_0lib64-msvc-14" address-model=64 link=shared threading=multi
b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:oost_1_63_0lib64-msvc-14" address-model=64 link=static threading=multi
5.需要注意的是address-model=64属性,如果没有这个属性的话,会默认生成32位的平台库,加入这个选项才能生成64位的DLL。
要编译很久
然后可以使用了。
6.使用方法:
设置下环境变量,头文件路径BOOST64_BASE_DIR , BOOST64_LIB_DIR.
2017/8/28
再次编译系统,在visual studio 2010下编译boost库:
使用VS2010 64位工具,切换到boost目录,键入命令:
b2 stage --toolset=msvc-10.0 --stagedir="d:oost_1_63_0lib64-msvc-10" address-model=64
选择全编译,知名库的编译路径,编译器工具,虽然时间长,不会有缺库的提示。
以上是关于win7下为VS2010安装boost库 命令行运行bootstrap.bat时提示failed to build Boost.Build engine的主要内容,如果未能解决你的问题,请参考以下文章