2016-09-14 1 views
0

빌드하려고하는 외부 C++ 코드 기반에 BOOST가 필요합니다. VS2015 커뮤니티 에디션이 있고 명령 줄에서 빌드하려고합니다. Windows를 연결하여 명령 줄 아키텍처 유형 문제에서 부스트하는 C++ 프로젝트

나는 다운로드하고이 명령을 사용하여 부스트를 구축 :

.\b2 toolset=msvc-14.0 --build-type=complete --abbreviate-paths architecture=64 address-model=64 install -j4 

나는 다음과 같이 프로젝트를 구축을 위해 노력하고있다 : 나는이 작업을 수행 할 때

cl /EHsc -I "C:\Users\alex\Documents\boost_1_60_0" myproj_helper.cpp main.cpp /link /LIBPATH:"C:\Boost\lib" /out:program.exe 

나는 다음과 같은 오류가 발생합니다.

libboost_thread-vc140-mt-s-1_60.lib(thread.obj) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' 

나는 이것이 내가 건축 또는 무엇에 대한 CL을 줄 필요가 인수를 놓친 거지 만약 내가 잘못 부스트를 구축하고 여러 설정을 다시 할 필요하거나 의미 확실하지 않다. 나는 윈도우 10 홈 64 비트 머신에있다. 이 문제를 어떻게 해결할 수 있습니까?

답변

1

여러분은 아키텍처가 x64 인 Boost를 만들고 있습니다. 이것은 좋은 것이고 당신이 원하는 것입니다. 문제는 연결시 Boost와 충돌하는 x86의 기본 아키텍처로 프로젝트를 빌드한다는 것입니다. this documentation을 사용하면 명령 줄에 환경을 설정하여 x64 아키텍처를 사용할 수 있습니다.

  1. 작업 디렉토리로 원하는 MSVC 버전의 VC 디렉토리를 설정합니다.

    cd "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"

  2. 실행이 마법 배치 스크립트 (이 기본입니다 amd64_x86도, 그리고 amd64_arm가)

    vcvarsall amd64

당신이 x86을 위해 구축하고자하는 경우, 당신은 것입니다 단지 부스트를 구성하여 x86으로 만들어야합니다. 내가 말했듯이, MSVC가 호환 가능하게하는 기본값입니다.

+0

고맙습니다. 네가 나를 구한 시간은 내가 멍청한 질문에 대한 downvotes 가치가있다 :) – asutherland