【发布时间】:2021-11-01 04:12:36
【问题描述】:
CMake 是否有相当于make -k 的方法,换句话说,即使一个文件中出现错误,CMake 也会继续编译其他文件?
【问题讨论】:
-
您想跳过哪种确切的错误? 编译文件并执行其他构建步骤的不是CMake。 CMake 只执行配置。配置过程中的错误已经分类为fatal,立即终止配置(例如,因为错误之后的步骤没有意义)和non-fatal,允许配置继续直到最后。所以对于 CMake 本身来说,
-k选项会有点意义。 -
只需通过 cmake 生成
makefiles并在构建时使用make -k。您可能正在生成ninja或其他东西......但cmake 也可以生成makefiles。 -
感谢您的教育,我正在使用 QtCreator,并认为 cmake 是 qmake 的替代品。在那个环境中,我可以在 qmake 输出上配置一个 make -k 。现在编译必须由忍者或其他人制作。但我现在看到这确实是一个 qtcreator 问题,而不是一个 cmake 问题。我的错。所以我将把它发布在 qtcreator 论坛上,而不是在 stackoverflow 上。再次感谢您对我的教育。
-
如果您使用 Ninja,您必须提供一个额外的参数,说明在 Ninja 停止之前允许发生多少错误,
0是无限的。ninja -k 0将等同于make -k。另请参阅stackoverflow.com/q/58920832/2799037。