用于64位窗口的64位版本的Boost

VS2008有64位Boost库的版本吗? 还是我自己编译一个呢? 那么,如果有谁有经验呢?

作为一个简短的答案:

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete 

作为一个更长的答案,这里是我的构build笔记VS.NET 2008 32位和64位boost库在相同的层次结构(这是我怀疑是一个常见的用例):

  1. 生成win32二进制文件

     bjam --toolset=msvc-9.0 --build-type=complete stage 
  2. 创build目录lib \ win32

  3. 将stage \ lib的内容移动到lib \ win32
  4. 删除目录bin.v2和舞台
  5. 构buildx64二进制文件

     bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage 
  6. 创build目录lib \ x64

  7. 将stage \ lib的内容移动到lib \ x64
  8. 删除目录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\