【问题标题】:CMake find_file not finding fileCMake find_file 找不到文件
【发布时间】:2020-08-02 03:19:04
【问题描述】:

尝试在我的项目中加载yaml-cpp

add_executable(abhi src.cpp)
set(CMAKE_INCLUDE_PATH "absolute_path_of_directory")
find_path(yaml-cpp_INCLUDE_DIRS yaml-cpp/yaml.h NO_DEFAULT_PATH)
target_include_directories(abhi yaml-cpp_INCLUDE_DIRS)

当我删除NO_DEFAULT_PATH 时,它会在/usr/local/include 中找到正确的路径,但如果我通过设置NO_DEFAULT_PATH 和使用CMAKE_INCLUDE_PATH 的cmake 将搜索移动到特定目录,则找不到文件路径

----更新----- 我在abs_path/yaml-cpp 中搜索yaml-cpp/yaml.h 是一个愚蠢的错误,但搜索应该在abs_path/ 路径中。感谢您抽出宝贵时间帮助我:)

【问题讨论】:

  • 你试过--debug-find模式吗?重现问题的最小示例也很不错。
  • 这个东西不工作,所以我尝试了--trace,但我发现那里没有任何用处
  • 请提供最小的项目,以便有人可以尝试构建它。你是什​​么意思不工作?你用的是最新的 CMake 吗?

标签: c++ cmake yaml-cpp


【解决方案1】:

变量CMAKE_INCLUDE_PATH 被设置为一个缓存 变量,在cmake 命令行:

cmake -DCMAKE_INCLUDE_PATH=“absolute_path_of_directory”

或作为环境变量。

【讨论】:

  • 您可能需要清除 CMake 缓存并从头开始运行它。我建议阅读find_path 的文档以查看完整的搜索过程。
  • 上述变量也可以在CMakeLists.txt中使用,不需要是缓存变量。
猜你喜欢
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
相关资源
最近更新 更多