2012-06-10 1 views
0

Visual Studio 9.0 용 boost.thread 라이브러리를 빌드하려고합니다. 나는 LIB-파일을 빌드하는 bjam을 사용 :Build boost.thread-lib 파일을 찾을 수 없습니다.

bjam toolset=msvc-9.0 variant=release threading=multi link=shared 

컴파일은 성공하고 내가 부스트/무대/lib 디렉토리 아래에 lib 디렉토리 및 .dll 파일을 많이 얻었다. 그런 다음 Visual Studio 9.0에 경로와 위의 lib 경로를 추가했습니다.

하지만 일부 프로그램을 컴파일 할 때, 나는 항상 다음과 같은 오류가 발생합니다 : 내가 이름을 변경하려고

boost_thread-vc90-mt-1_49.lib 

:

libboost_thread-vc90-mt-s-1_49.lib cannot be opened. 

빌드에 의해 생성 된 lib 디렉토리 파일이 약간 다른 이름을 가지고 내 파일이 예상 이름과 일치하지만 Visual Studio에서 여전히 파일을 찾을 수 없습니다. 프로젝트 옵션 "C/C++/코드 생성/런타임 라이브러리"에 따라 파일 이름이 달라지는 것 같습니다. "Multithreaded/MT"옵션이 필요합니다.

내가 뭘 잘못하고 있니?

미리 감사드립니다.

답변

0

정적으로 CRT와 연결하려고하지만 동적으로 부스트를 사용하려고합니다. 이것은 좋은 생각은 아니지만 주장하는 경우 BOOST_ALL_DYN_LINK 매크로를 정의해야합니다. 프로젝트 옵션에서/MD를 선택하거나 부스트를 빌드 할 때 "link = static"을 설정하는 것이 더 좋습니다.

+0

고마워, 이제 link = static을 사용하여 컴파일했고 다음 라이브러리를 얻었다. libboost_thread-vc90-mt-1_49.lib. 그러나 링커는 libboost_thread-vc90-mt-s-1_49.lib (s에주의하십시오)를 검토합니다. 런타임 라이브러리 옵션은/MT입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? – mbue

+0

런타임 추가 = 정적 = 정적. 또한 매뉴얼 [1] [1]을보십시오. http://www.boost.org/doc/libs/1_49_0/more/getting_started/windows.html#library-naming –

+0

그게 전부입니다! 고맙습니다. – mbue