0

请检查以下场景:

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 提供绝对路径,它会起作用。

如果我遗漏了什么,请指出我。

4

1 回答 1

0

CMAKE_CURRENT_SOURCE_DIR始终是提到它的 CMakeLists.txt 所在的当前源目录。因此,根据使用它的目录,它会扩展为不同的东西。它对你来说是什么扩展,它与你的硬编码路径有什么不同?一旦你看到差异,你就会知道如何修复它,所以在两个文件中都这样做:

message(${variable_name})

然后重新运行cmake并查看它打印的内容。

于 2013-03-13T04:20:10.597 回答