我知道 CMake 的 EXCLUDE_FROM_ALL
允许我从 make
和 make all
中排除目标。
如果我只想从默认 make
中排除目标,但将其包含在 make all
中,该怎么办?
示例:
add_executable(aaa ${AAA_SOURCE})
add_executable(bbb EXCLUDE_FROM_ALL ${BBB_SOURCE})
结果:
make
仅构建 aaa
make all
仅构建 aaa
我想要什么:
make
仅构建 aaa
make all
构建 aaa
和 bbb
最佳答案
当使用 CMake 与 Unix Makefiles Generator 时,您将获得具有默认目标 all
的 make 文件。 .
当您运行make <target>
时,<target>
得到构建。如果省略参数,则默认目标是 build。添加all
并不意味着所有目标都已构建,而是目标名为 all
.
回答您的问题:由于(“”和“all
”)都是同一目标,因此您不能将构建添加到一个目标而不添加到另一个目标。
顺便说一句,没有明确定义什么all
应包括,参见What does "all" stand for in a makefile?
关于cmake - 从 `make` 中排除目标,但将其包含在 CMake 中的 `make all` 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48106759/