64 비트 Windows 용 Boost 64 비트 버전


119

VS2008 용 64 비트 Boost 라이브러리 버전이 있습니까? 아니면 직접 컴파일해야합니까? 그렇다면 누구든지 그것에 대한 경험이 있습니까?

답변:


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 디렉토리를 제거하고 준비
  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 디렉토리를 제거하고 준비

25
스테이지 디렉토리도 지정할 수 있으므로 결과 라이브러리를 복사 할 필요가 없습니다. bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser

8
무엇 단계는 ?
Ramadheer Singh

16
불행히도 64를 빌드하기 위해 address-model = 64는 작동하지 않습니다. Visual Studio \ bin \ amd64 \ cl.exe를 가리키는 경로가 있어야합니다. 그렇지 않으면 32 비트 버전을 빌드합니다. 이렇게하려면 Microsoft SDK 명령 프롬프트를 시작하고 모든 경로를 다시 정의하는 "setenv / Release / x64"를 사용할 수 있습니다.
Budric

2
@Budric, 확실합니까? 나를 위해 일한 것 같습니다과 명시 적으로 64 비트에서 건물에도 32 비트 컴파일러에 대한 경로를 제공하는 상태.
Maciej Gryka 2012 년

4
32 비트 및 64 비트 버전을 모두 빌드해야하는 경우 stagedir 매개 변수를 사용할 수도 있습니다. "bjam --stagedir =. / lib_64bit address-model = 64 toolset = msvc threading = multi"및 "bjam --stagedir =. / lib toolset = msvc threading = multi "
Odin

63

내 사이트에 빌드 된 바이너리가 있습니다 : http://boost.teeks99.com

2013-05-13 편집 : 이제 내 빌드를 sourceforge 페이지 에서 직접 사용할 수 있습니다 (1.53부터 시작) .


5
BoostPRo (Boost 라이브러리 용 바이너리를 제공하는)는 x64 버전을 제공하지 않기 때문에 이것을 제공하는 것이 좋습니다. 감사!
CharlesB

VS2015 (VC ++ 14) 바이너리를 게시 할 수 있습니까? 대단히 감사하겠습니다.
Russell Greene

1
msvc-14.0 바이너리는 몇 주 후에 1.59 릴리스에 포함될 예정입니다.
teeks99

22

UPDATE (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부스트 바이너리를 빌드하기 위해 파일을 만들고 실행할 수 있습니다 .


12

현재 teeks99에서 제공하는 64 비트 바이너리 (다른 답변 참조)는 유일한 무료 64 비트 바이너리로 보입니다. 한동안 BoostPro는 64 비트 바이너리도 제공했지만 1.51에서는 아웃 또는 비즈니스 인 것으로 보입니다.

따라서 다시 두 가지 옵션으로 돌아갑니다. teeks99 바이너리 또는 자체 빌드입니다.

직접 구축하는 데 필요한 대부분의 정보는 다음과 같습니다. https://stackoverflow.com/a/2655683/613288

빠진 유일한 것은 Visual Studio 2010 Express의 무료 버전과 함께 작동하도록하는 방법이었습니다. 누락 된 부분이 다른 곳에서 발견되었고 일부 사용자 지정 후 부스트 1.49.0 바이너리 빌드에 사용한 최종 레시피는 다음과 같습니다.

Visual C ++를 시작하고 도구 메뉴에서 Visual Studio 명령 프롬프트를 시작합니다.

콘솔 창에서 다음을 수행하십시오.

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\setenv.cmd"  /Release  /x64

그리고 부스트 디렉토리에서 :

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

마지막 명령은 필요한 작업에 맞게 사용자 지정됩니다 (정적으로 연결된 일부 라이브러리).


x64 1_51 설치 프로그램을 다운로드했지만 시스템 라이브러리에 대한 손상된 아카이브가 포함되어 있으며 다른 라이브러리에 x86이있는 것으로 보입니다 (링커 ​​경고가 표시됨). teeks99의 libs로 전환 한 후 모든 것이 정상이되었습니다.
Alex

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\
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.