我对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.txtfind_package(Boost 1.40.0 REQUIRED)
到
find_package(Boost 1.40.0 REQUIRED COMPONENTS asio)
然后, cMake要求Boost_ASIO_LIBRARY_DEBUG
和Boost_ASIO_LIBRARY_RELEASE
。我是否以正确的方式进行此操作,如果是这样,我应该指向cMake以找到这些库。 (我正在使用cMake 2.6并提升1.40.0)
答案 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)