我对 CMake 比较陌生,我正在尝试在我的项目中使用 boost asio 库。
我能够让 CMake 找到其他增强库,例如 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_DEBUG
和 Boost_ASIO_LIBRARY_RELEASE
。我是否以正确的方式解决这个问题,如果是这样,我应该指向 CMake 哪里来找到这些库。 (我正在使用 CMake 2.6 和 boost 1.40.0)
根据 ASIO 文档:
必须提供以下库才能链接使用 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)