c++ - 如果 include_directories 中的路径之一不存在,为什么 CMakeLists 不抛出警告/错误(在编译期间)?
问题描述
在我CMakeLists.txt
的下面有很多路径include_directories()
。当遇到不存在的路径时,我希望看到错误或警告。所以我可以清理我的CMakeLists.txt
. CMakeLists.txt
我想清理多个。我的include_directories
样子是这样的:
include_directories(
"inc"
"../../../../../../a/b/c/d/e/f/inc"
"../../../../../../a/b/c/d/l/p/inc"
"../../../../../../a/b/c/d/l/o/inc"
.
.
.
.
.
.
.
.
)
当前分支中不存在路径“inc”,CMakeLists.txt
但不会引发错误。
我认为CMakeLists.txt
忽略include_directories()
.
解决方案
CMake 传递包括进一步到构建系统的目录,并且不太关心它们的存在。
但是,您可以使用一些代码自己完成。函数include_directories将列表放入可以迭代的变量INCLUDE_DIRECTORIES中:
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
FOREACH(dir ${dirs})
IF(NOT EXISTS ${dir})
message(SEND_ERROR "directory '" ${dir} "' does not exist.")
ENDIF(NOT EXISTS ${dir})
ENDFOREACH(dir)
现场演示。
推荐阅读
- discord - Discord.py 命令上的命令错误消息
- azure-active-directory - 如何使用 Graph API 通过 id 或 userPrincipalName 获取用户对象?
- typescript - 用于对象的名为 arg 的打字稿
- ffmpeg - 如何使用ffmpeg在视频的最后5秒排除水印覆盖
- pine-script - 如何更改满足我在 Pine Script 中的蜡烛标准/定义的蜡烛的蜡烛颜色?
- react-native - React-native : 自签名认证实现
- r - 将核密度估计提取到 R 中的新样本点
- sql-server - 尝试连接到我的 Docker 实例时在 SSMS 中出现错误 26
- javascript - Javascript从对象数组中删除重复项
- java - maven找不到依赖,eclipse正常工作,有ca.uhn.hapi.fhir依赖