cmake - 从 `make` 中排除目标,但将其包含在 CMake 中的 `make all` 中

标签 cmake

我知道 CMake 的 EXCLUDE_FROM_ALL 允许我从 makemake 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 构建 aaabbb

最佳答案

当使用 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/

相关文章:

CMake:从多行文本文件获取版本

opencv - 无法在 Ubuntu 上安装 cmake(构建错误)

cmake 解析错误重复

c++ - CMake - 如何链接到项目中打包的外部库?

android - 如何为每个 Android ABI 设置产品风格的 CmakeLists 路径?

cmake - 如何在cmake中控制构建模式(调试或发布)?

android-ndk - Android NDK、CMake 与其他库

python - 如何让CMake在生成visual studio解决方案后执行一些脚本

cmake - MSBuild:错误 MSB3073 命令 'setlocal VCEnd' 已退出,代码为 1

c - 如何使用 CMake post_build 执行 shell 脚本?