2008-11-19 18 views
44

He creado las bibliotecas x86 Boost muchas veces, pero parece que no puedo construir bibliotecas x64. Inicio el "Visual Studio 2005 x64 Cruz comandos de las herramientas" y ejecutar mi construcción habitual:¿Cómo construyes las bibliotecas de x64 Boost en Windows?

bjam --toolset=msvc --build-type=complete --build-dir=c:\build install 

Pero todavía produce x 86 .lib archivos (He verificado esto con dumpbin/cabeceras). ¿Qué estoy haciendo mal?

Respuesta

57

Tiene que agregar el parámetro address-model=64.

Mire, por ejemplo here.

+2

Esta respuesta también es válida para la herramienta de impulso de construcción más reciente, 'b2'. – anderas

+2

¿Puedes explicar esto entonces? C: \ Boost \ boost_1_61_0>. \ B2 --stagedir = lib \ x64 architecture = x86 address-model = 64 link = static --build-type = complete stage Realizar comprobaciones de configuración - 32-bit: yes – stu

2

La respuesta aceptada es correcta. Agregue esto en caso de que alguien más busque esta respuesta y todavía no produzca la versión x64.

A continuación se muestra lo que tuve que hacer para compilar Boost 1.63 en VS 15 2017 Community Edition.

Comandos ejecutados desde el entorno VS shell cmd. Herramientas -> Comando de Visual Studio Prompt

C:\Work\Boost_1_63> C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat amd64 
C:\Work\Boost_1_63> bootstrap.bat C:\Work\Boost_1_63> bjam -j4 architecture=x86 address-model=64 link=static stage 
C:\Work\Boost_1_63> bjam --prefix=C:\opt\boost architecture=x86 address-model=64 link=static install 

puede comprobar que el .lib resultante es x64 con dumpbin:

C:\Work> dumpbin /headers C:\work\boost_1_63\stage\lib\libboost_locale-vc140-mt-1_63.lib | findstr machine 
8664 machine (x64) 
8664 machine (x64) 
8664 machine (x64) 
8664 machine (x64) ... 
Cuestiones relacionadas