2010-01-16 119 views
5

我對cMake比較陌生,而且我正在嘗試在我的項目中使用boost asio庫。在cMake中使用boost.asio

我能得到的CMake尋找其他Boost庫如smart_ptr和lexical_cast的,但我得到一個鏈接錯誤,當我嘗試包括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) 

find_package(Boost 1.40.0 REQUIRED COMPONENTS asio) 

CMake的那麼作爲ks代表Boost_ASIO_LIBRARY_DEBUGBoost_ASIO_LIBRARY_RELEASE。我是否以正確的方式開展工作,如果是的話,我應該在哪裏找到這些庫。 (我使用cmake 2.6和升壓1.40.0)

回答

8

按照ASIO documentation

以下庫必須可用以連接使用Boost.Asio的節目:

  • boost :: system :: error_code和boost :: system :: system_error類的Boost.System。
  • Boost.Regex(可選)如果使用採用boost :: regex參數的任何read_until()或async_read_until()重載。
  • 如果您使用Boost.Asio的SSL支持,OpenSSL(可選)。

如果你看看你的鏈接錯誤,你會看到它正在尋找Boost.System庫。我會嘗試將您的CMakLists.txt改爲:

find_package(Boost 1.40.0 REQUIRED system) 
+1

當然,您還必須添加target_link_libraries(YourExecutable $ {Boost_LIBRARIES}) – 2013-12-18 13:29:42