当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《用于64位窗口的64位Boost版本》经验,为你挑选了4个好方法。

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



1> 小智..:

简而言之:

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

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

    构建win32二进制文件

    bjam --toolset=msvc-9.0 --build-type=complete stage
    

    创建目录lib\win32

    将stage\lib的内容移动到lib\win32

    删除目录bin.v2和stage

    构建x64二进制文件

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

    创建目录lib\x64

    将stage\lib的内容移动到lib\x64

    删除目录bin.v2和stage


您也可以指定stage目录,这样就无需复制生成的库:bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib\x64 stage
不幸的是,构建64,address-model = 64不起作用.您需要将路径指向Visual Studio\bin\amd64\cl.exe.否则它会构建32位版本.为此,您可以启动Microsoft SDK命令提示符并使用"setenv/Release/x64"重新定义所有路径.
什么是_stage_?
如果你需要构建32位和64位版本,也可以使用stagedir参数:"bjam --stagedir =./ lib_64bit address-model = 64 toolset = msvc threading = multi"和"bjam --stagedir =./lib toolset = msvc threading = multi"
@Budric,你确定吗?它似乎对我和[这]有用(http://www.boost.org/boost-build2/doc/html/bbv2/reference/tools.html#v2.reference.tools.compiler.msvc.64)明确表示即使在64位构建时也提供32位编译器的路径.

2> teeks99..:

我在我的网站上有建立的二进制文件:http: //boost.teeks99.com

编辑2013-05-13:我的构建现在可以直接从sourceforge页面获得(从1.53开始).


很好,你提供这个,因为BoostPRo(为Boost库提供二进制文件)不提供x64版本.谢谢!

3> mtb..:

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

我使用这个脚本来构建x64和x86平台的升压,lib和dll,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文件并运行它来构建boost二进制文件.



4> ecotax..:

此时,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

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

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有