在cMake中使用boost.asio

在cMake中使用boost.asio,boost,cmake,boost-asio,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

我对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)

然后,cMake请求
Boost\u ASIO\u LIBRARY\u DEBUG
Boost\u ASIO\u LIBRARY\u RELEASE
。我这样做是否正确?如果是,我应该向cMake指出哪里可以找到这些库。(我正在使用cMake 2.6和boost 1.40.0)

根据ASIO:

要链接使用Boost.Asio的程序,必须提供以下库:

  • Boost::System::error\u代码和Boost::System::System\u错误类的Boost.System
  • 如果使用任何带有Boost::Regex参数的read_until()或async_read_until()重载,则Boost.Regex(可选)
  • OpenSSL(可选),如果您使用Boost.Asio的SSL支持
如果查看链接错误,您将看到它正在查找Boost.System库。我会尝试将您的CMakLists.txt更改为:

find_package(Boost 1.40.0 REQUIRED system)

当然,您还必须添加目标链接库(您的可执行${Boost\u libraries})
find_package(Boost 1.40.0 REQUIRED system)