C++ 适用于64位windows的64位版本的Boost
是否有适用于VS2008的64位Boost库版本? 还是我必须自己编译一个?如果是这样的话,有没有人有这方面的经验?作为简短的回答:C++ 适用于64位windows的64位版本的Boost,c++,visual-studio-2008,boost,C++,Visual Studio 2008,Boost,是否有适用于VS2008的64位Boost库版本? 还是我必须自己编译一个?如果是这样的话,有没有人有这方面的经验?作为简短的回答: bjam --toolset=msvc-9.0 address-model=64 --build-type=complete 作为一个较长的回答,以下是我在同一层次结构中使用VS.NET 2008 32位和64位boost库的构建说明(我怀疑这是一个常见的用例): 构建win32二进制文件 bjam --toolset=msvc-9.0 --build-type
bjam --toolset=msvc-9.0 address-model=64 --build-type=complete
作为一个较长的回答,以下是我在同一层次结构中使用VS.NET 2008 32位和64位boost库的构建说明(我怀疑这是一个常见的用例):
bjam --toolset=msvc-9.0 --build-type=complete stage
bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
我已经在我的站点上构建了二进制文件:
编辑2013-05-13:我的版本现在可以直接从中获得(从1.53开始)。我为自己编写了一个小脚本,用于为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\
此时,teeks99提供的64位二进制文件(见其他答案)似乎是唯一可用的64位二进制文件。有一段时间,BoostPro还提供了64位二进制文件,但从1.51开始,它们似乎已经过时了 所以,我们又回到了两个选项:teeks99二进制文件,或者构建您自己的 我自己构建所需的大部分信息都在这里: 唯一缺少的是如何让它与免费版本的VisualStudio2010Express一起工作。我在其他地方发现了缺失的部分,经过一些定制,我用于构建boost 1.49.0二进制文件的最终配方是:
启动VisualC++,并从工具菜单启动VisualStudio命令提示符。
在控制台窗口中,执行以下操作:"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
最后一个命令是根据我的需要定制的(只是一些静态链接的库)。更新(19.09.2017):为VS2017添加了脚本行。请注意,Boost支持上述特定版本的VS2017编译器。我使用了最新版本(1.65.1)
我使用此脚本为x64和x86平台构建boost、为VS2017、VS2015和VS2013构建lib和dll、调试和发布:
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二进制文件。您还可以指定stage目录,这样就不需要在以下位置复制生成的库:bjam--toolset=msvc-9.0 address model=64--build type=complete--stagedir=lib\x64stage@hkaiser当我尝试将库放在lib\x64\lib
中时,不幸的是构建64时,address model=64不起作用。您需要将路径指向Visual Studio\bin\amd64\cl.exe。否则它将构建32位版本。为此,您可以启动Microsoft SDK命令提示符并使用“setenv/Release/x64”重新定义所有路径。@Budric,您确定吗?它似乎对我很有用,并明确指出即使在构建64位时也要提供32位编译器的路径。如果需要构建32位和64位版本,也可以使用stagedir参数:“bjam--stagedir=./lib_64位地址模型=64工具集=msvc线程=多”和“bjam--stagedir=。/lib toolset=msvc threading=multi”很好,因为BoostPRo(为Boost库提供二进制文件)不提供x64版本。谢谢!有机会发布VS2015(VC++14)吗二进制文件?非常感谢。msvc-14.0二进制文件将在几周后发布1.59版。我下载了他们的x64 1_51安装程序,但是,它包含损坏的系统库存档,而且似乎还有一些其他库是x86(我收到链接器警告)。在切换到teeks99的libs后,一切都正常了。