【发布时间】:2016-04-09 13:20:26
【问题描述】:
这就是我的CMakeLists.txt 的样子
我从here 下载了asio 库。它由许多必须包含在项目中的头文件组成。问题是这些标头位于目录内,而 #include 语句与正确的目录不匹配。
例如,他们有一个asio/async_result.hpp 文件。该文件包括asio/detail/config.hpp。不过应该是../asio/detail/config.hpp
我该怎么办?轻松重命名所有这 200 个头文件以适应正确的目录结构?为什么他们开箱即用就错了?
【问题讨论】:
-
只是给未来读者的一个提示:
asio现在是boost::asio的一部分。不要单独安装,而是从 boost 中获取。 -
Asio 中的包含指令要求 Asio 在包含路径中可用。通过
include_directories()将server_client目录添加到包含路径到您的CMakeLists.txt 文件是否可以解决问题(例如include_directories(${CMAKE_CURRENT_SOURCE_DIR})? -
@TannerSansbury 我正在写这个问题的答案
-
@MarcusMüller Standalone asio 仍然存在,并且正在开发成为标准库的一部分,所以我觉得在不久的将来独立版本将是一个更好的选择。
-
@MarcusMüller 如果您不使用 Boost 的其他部分,那么独立的可能更可取。独立版本仅包含标头,但 Boost 版本不是 - 如果您不必与任何 Boost 库链接,仅此一项就足以让您更喜欢它。
标签: c++ cmake boost-asio