我有一个复杂的构建,我正在尝试在新的构建服务器上进行整理。使用CMake创建makefile。在另一台服务器上的旧版CMake是2.8.5。新版本是2.8.12.2。由于某种原因,自动生成的CMakeDirectoryInformation.cmake文件缺少CMAKE_C_INCLUDE_PATH和CMAKE_CXX_INCLUDE_PATH,它们指定该特定目录可用的包含头的绝对位置。如果没有该信息,该目录中通过本地路径引用标头的源代码(例如foo.h与../../../asdf/foo.h)将无法编译。任何想法为什么缺少这些?据我所知,这应该由CMake自动生成。
答案 0 :(得分:0)
我找到了一个有用的命令让我进一步深入构建:
SET(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
但这并没有真正解决我的问题。真正的问题是我的一个CMakeLists.txt文件中有:
include_directories(
$[XXXX_INCLUDE_DIR}
)
'['括号导致构建失败,因为包含目录未被使用。但是,在旧的构建服务器上,此方括号没有问题。