10

我对 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_DEBUGand Boost_ASIO_LIBRARY_RELEASE。我是否以正确的方式进行此操作,如果是这样,我应该在哪里指向 cMake 来找到这些库。(我正在使用 cMake 2.6 和 boost 1.40.0)

4

1 回答 1

20

根据 ASIO文档

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

  • Boost.System 用于 boost::system::error_code 和 boost::system::system_error 类。
  • 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)
于 2010-01-18T17:41:24.363 回答