在cMake中使用boost.asio

时间:2010-01-16 20:58:36

标签: boost 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要求Boost_ASIO_LIBRARY_DEBUGBoost_ASIO_LIBRARY_RELEASE。我是否以正确的方式进行此操作,如果是这样,我应该指向cMake以找到这些库。 (我正在使用cMake 2.6并提升1.40.0)

1 个答案:

答案 0 :(得分:9)

根据ASIO documentation

  

以下库必须可用于链接使用Boost.Asio的程序:

     
      
  • Boost.System用于boost :: system :: error_code和boost :: system :: system_error类。
  •   
  • Boost.Regex(可选),如果您使用带有boost :: regex参数的任何read_until()或async_read_until()重载。
  •   
  • OpenSSL(可选),如果您使用Boost.Asio的SSL支持。
  •   

如果查看链接错误,您将看到它正在寻找Boost.System库。我会尝试将您的CMakLists.txt更改为:

find_package(Boost 1.40.0 REQUIRED system)