【发布时间】:2020-08-10 06:35:23
【问题描述】:
根据Why is cmake file GLOB evil?,使用 glob 作为目标源是一种不好的做法。我试图产生所描述的情况。
CMakeLists.txt
file(GLOB SOURCES "src/*.cpp")
add_executable(main "${SOURCES}")
src/main.cpp
#include <iostream>
int main() {
return 0;
}
我正在运行cmake 一次。之后,我创建了一个无效的 cpp 文件 src/test.cpp 并再次运行 cmake,然后是 make。根据帖子中描述的情况,我必须编译所有内容,因为 cmake 不跟踪此文件。但实际上 cmake 确实检测到更改并且编译失败。我理解错了吗?我使用的是cmake版本3.17.1
【问题讨论】: