我有一个复杂的构建,我正在尝试在一个新的构建服务器上进行排序。使用cmake创建makefile。不同服务器上的旧版cmake是2.8.5。新版本是2.8.12.2。出于某种原因,自动生成的cmakeDirectoryInformation.cmake文件缺少cmake_c_include_path和cmake_cxx_include_path,后者指定了该特定目录可用的include头的绝对位置。如果没有这些信息,目录中通过本地路径引用头的源代码(例如foo.h与../../../asdf/foo.h)将无法编译。你知道为什么这些东西不见了吗?据我所知这应该是由cmake自动生成的。

最佳答案

我找到了一个有用的命令,让我更深入地了解自己的构造:

SET(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)

但那并没有真正解决我的问题。真正的问题是,在我的cmakelists.txt文件中,我有:
include_directories(
  $[XXXX_INCLUDE_DIR}
)

“[”括号导致生成失败,因为未使用该包含目录。但是,在旧的构建服务器上,这个方括号没有问题。

09-04 00:33
查看更多