c++ - 如何正确#include 一个柯南包?
问题描述
我有以下 cmake 配置。
conan_cmake_configure(REQUIRES
catch2/2.13.7
fmt/6.1.2
termcolor/2.0.0
date/3.0.1
asio/1.20.0
tl-expected/20190710
GENERATORS cmake_find_package)
...
...
...
find_package(fmt REQUIRED)
include_directories(${fmt_INCLUDE_DIR})
link_libraries(${fmt_LIBRARIES})
find_package(termcolor REQUIRED)
include_directories(${termcolor_INCLUDE_DIR})
link_libraries(${termcolor_LIBRARIES})
find_package(date REQUIRED)
include_directories(${date_INCLUDE_DIR})
link_libraries(${date_LIBRARIES})
find_package(asio REQUIRED)
include_directories(${asio_INCLUDE_DIR})
link_libraries(${asio_LIBRARIES})
find_package(tl-expected REQUIRED)
include_directories(${tl-expected_INCLUDE_DIR})
link_libraries(${tl-expected_LIBRARIES})
我可以像这样#include 库:
#include <asio.hpp>
#include <fmt/format.h>
但我没有找到任何关于如何准确#includeexpected
库的信息。我已经尝试过 expected.hpp
来自https://github.com/hannahwhy/conan-tl-expected/blob/stable/1.0.1/test_package/example.cpp的示例
它是fatal error C1083: No such file or directory
解决方案
感谢您的提示。答案实际上很简单(通常如此)。
cmake在创建 include_directories 和 link_libaries 变量时转换-
为。_
所以这修复了它:
find_package(tl-expected REQUIRED)
include_directories(${tl_expected_INCLUDE_DIR})
link_libraries(${tl_expected_LIBRARIES})
推荐阅读
- python - 编写python函数的有效方法
- nginx - 这个问题背后的原因=>nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
- django - 如何使用两个序列化器的几个字段创建一个新的序列化器类
- reactjs - 等待异步反应
- ios - 快速图像模糊
- android - 当您在 React Native 中滚动一个水平滚动视图时,同步滚动多个水平滚动视图
- list - 创建列表的更快方法
- node.js - 当 npm run serve 在 vuejs 项目中时,javascript 堆内存不足?
- c++ - LUT 避免 uint32_t 幂指数
- c - 什么负责为变量分配和链接地址?