2010-01-16 4 views
5

저는 비교적 새로운 cMake이고, 저는 프로젝트에서 boost asio 라이브러리를 사용하려고합니다. cMake에서 boost.asio 사용하기

나는 그런 smart_ptr 및 lexical_cast 다른 부스트 라이브러리를 찾을 cMake을 얻을 수 있었다, 그러나 나는 boost/asio.hpp 포함 할 때 나는 링커 오류가 발생합니다 :

LINK : fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-1_40.lib'. 

그때 내 CMakeLists.txt을 변경하려 그런 다음

find_package(Boost 1.40.0 REQUIRED COMPONENTS asio) 

cMake에

find_package(Boost 1.40.0 REQUIRED) 

행 ks : Boost_ASIO_LIBRARY_DEBUGBoost_ASIO_LIBRARY_RELEASE 내가 올바른 방향으로 가고 있는지, 그렇다면이 라이브러리를 찾을 수있는 곳을 cMake가 가리켜 야할까요? ASIO documentation에 따르면

답변

8

(나는 cMake 2.6 부스트 1.40.0을 사용하고 있습니다) :

다음 라이브러리를 사용할 수 있어야합니다 Boost.Asio를 사용하는 프로그램을 연결하기 위해 :

  • boost :: system :: error_code 및 boost :: system :: system_error 클래스 용 Boost.System입니다.
  • boost :: regex 매개 변수를 사용하는 read_until() 또는 async_read_until() 오버로드를 사용하는 경우 Boost.Regex (선택 사항).
  • Boost.Asio의 SSL 지원을 사용하는 경우 OpenSSL (선택 사항).

링크 오류를 보면 Boost.System 라이브러리를 찾을 수 있습니다. 나는 당신의 CMakLists.txt를 다음과 같이 변경하려고 시도 할 것입니다 :

find_package(Boost 1.40.0 REQUIRED system) 
+1

그리고 물론 target_link_libraries (YourExecutable $ {Boost_LIBRARIES})를 추가해야합니다. –

관련 문제