用于64位窗口的64位版本的Boost
VS2008有64位Boost库的版本吗? 还是我自己编译一个呢? 那么,如果有谁有经验呢?
作为一个简短的答案:
bjam --toolset=msvc-9.0 address-model=64 --build-type=complete
作为一个更长的答案,这里是我的构build笔记VS.NET 2008 32位和64位boost库在相同的层次结构(这是我怀疑是一个常见的用例):
-
生成win32二进制文件
bjam --toolset=msvc-9.0 --build-type=complete stage
-
创build目录lib \ win32
- 将stage \ lib的内容移动到lib \ win32
- 删除目录bin.v2和舞台
-
构buildx64二进制文件
bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
-
创build目录lib \ x64
- 将stage \ lib的内容移动到lib \ x64
- 删除目录bin.v2和舞台
我的网站上有build立的二进制文件: http : //boost.teeks99.com
编辑2013-05-13:我的版本现在可以直接从sourceforge页面 (从1.53开始)。
更新(19.09.2017):为VS2017添加脚本行。 请注意,Boost支持上面某个版本的VS2017编译器。 我使用了最新版本(1.65.1)。
我使用这个脚本来构buildx64和x86平台,lib和dll,VS2017,VS2015和VS2013的debugging和发布:
md stage\VS2017\x64 md stage\VS2015\x64 md stage\VS2013\x64 b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release md stage\VS2017\win32 md stage\VS2015\win32 md stage\VS2013\win32 b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release pause
你可以创build一个.bat
文件并运行它来构build你的boost二进制文件。
在这一刻,teeks99提供的64位二进制文件(见其他答案)似乎是唯一的免费的64位二进制文件。 有一段时间,BoostPro也提供了64位的二进制文件,但是在1.51版本的时候,它们似乎已经不在了,或者是在商业上。
所以,我们又回到了两个选项:teeks99二进制文件,或者自己构build。
我需要build立自己的大部分信息在这里: https : //stackoverflow.com/a/2655683/613288
唯一缺less的是如何让这个工作与免费版本的Visual Studio 2010 Express。 我发现在其他地方缺less的部分,经过一些定制后,我用于生成boost 1.49.0二进制文件的最终配方是:
启动Visual C ++,并从工具菜单启动Visual Studio命令提示符。
在控制台窗口中,执行以下操作:
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\setenv.cmd" /Release /x64
然后在boost目录中:
bootstrap.bat b2 -a -sBZIP2_SOURCE="C:\bzip2-1.0.6" -sZLIB_SOURCE="C:\zlib-1.2.5" --toolset=msvc-10.0 architecture=x86 address-model=64 link=static --with-date_time --with-filesystem --with-serialization --with-test --with-thread --with-system --with-regex --with-iostreams stage
最后的命令是为我所需要的(只是一些静态链接库)而定制的。
我给了我一个小编译VS2005和VS2008的脚本:
md stage\lib\win32 md stage\lib\x64 REM Visual Studio 2005 bjam --toolset=msvc-8.0 --build-type=complete stage move /Y stage\lib\* stage\lib\win32\ bjam --toolset=msvc-8.0 address-model=64 --build-type=complete stage move /Y stage\lib\* stage\lib\x64\ REM Visual Studio 2008 bjam --toolset=msvc-9.0 --build-type=complete stage move /Y stage\lib\* stage\lib\win32\ bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage move /Y stage\lib\* stage\lib\x64\