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

时间:2010-02-23 22:31:07

标签: c++ visual-studio-2008 boost

是否有适用于VS2008的64位Boost库版本? 或者我必须自己编译一个?如果,那么,有没有人有经验呢?

5 个答案:

答案 0 :(得分:226)

简短回答:

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

作为一个更长的答案,以下是我在同一层次结构中使用VS .NET 2008 32位和64位增强库的构建说明(我怀疑这是一个常见的用例):

  1. 构建win32二进制文件

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

  3. 将stage \ lib的内容移至lib \ win32
  4. 删除目录bin.v2和stage
  5. 构建x64二进制文件

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

  7. 将stage \ lib的内容移动到lib \ x64
  8. 删除目录bin.v2和stage

答案 1 :(得分:62)

我的网站上已经建了二进制文件: http://boost.teeks99.com

编辑2013-05-13:我的版本现在可以直接从sourceforge page获得(从1.53开始)。

答案 2 :(得分:21)

UPDATE(19.09.2017):为VS2017添加了脚本行。请注意,Boost支持上述特定版本的VS2017编译器。我使用的是最新版本(1.65.1)。

我使用这些脚本为x20和x86平台,lib和dll构建boost,为VS2017,VS2015和VS2013调试和发布:

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

您可以创建一个.bat文件并运行它来构建您的增强二进制文件。

答案 3 :(得分:12)

此时,teeks99提供的64位二进制文​​件(参见其他答案)似乎是唯一免费的64位二进制文​​件。有一段时间,BoostPro也提供了64位二进制文​​件,但从1.51开始,它们似乎已经出局或开展业务。

所以,我们又回到了两个选项:teeks99二进制文件,或构建自己的二进制文件。

我需要建立自己的大部分信息都在这里: https://stackoverflow.com/a/2655683/613288

唯一缺少的是如何使用Visual Studio 2010 Express的免费版本。我发现在其他地方缺少部分,经过一些定制后,我用于构建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

最后一个命令是根据我的需要进行定制的(只是一些静态链接的库)。

答案 4 :(得分:4)

我为我制作了一个小脚本,为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\