请查看下面的场景:
cmakelists_1.txt
set( variable_name
${CMAKE_CURRENT_SOURCE_DIR}/sub_folder1
${CMAKE_CURRENT_SOURCE_DIR}/sub_folder2
)
cmakelists_2.txt
include_directories(
${variable_name}
)
现在,当cmakelists_2执行时,它不包含sub_folders中存在的文件。但是如果我为cmakelists_1中的sub_folders提供绝对路径,它就可以工作。
如果我错过了什么,请指出我。
答案 0 :(得分:0)
CMAKE_CURRENT_SOURCE_DIR
始终是提及它的CMakeLists.txt所在的当前源目录。所以它根据使用的目录扩展到不同的东西。它为您扩展的是什么,与您的硬编码路径有何不同?一旦你看到差异,你就会知道如何解决它,所以在两个文件中都这样做:
message(${variable_name})
然后重新运行cmake
并查看它打印的内容。