我正在开发一个 C++ 项目,该项目将包含在一个更大的项目中。
我已经看到在更大的项目中(是一个 Qt 应用程序,它是从 qmake 生成的)我能够从 linux 命令行编译单个文件,只需输入特定文件的相对路径作为 make 的参数。
另一方面,我在自己的项目中使用 CMake。当我为一个编译单元修改一些代码并且我必须修改它的头文件时,我必须等待很长时间才能编译它的依赖项,然后编译它自己的源文件。但是在某些情况下,我更愿意检查 *.cc 文件中的源代码是否可以无错误地编译。
有没有办法像 qmake 那样从 CMake 生成 Makefile?切换到 qmake 不再是一种选择。
原文由 pacorrop 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不必向 CMake 脚本添加额外的自定义目标,因为 CMake 生成的 Makefile 已经包含每个 .cc 文件的 .o 目标。例如,如果您有一个名为
mySourceFile.cc
的源文件,那么您的构建目录中将有一个 Makefile 定义一个名为<Some Path>/mySourceFile.cc.o
的目标。 If youcd
into your build directory, you can usegrep
orack-grep
to locate the Makefile that defines this target, thencd
into该 Makefile 的目录并构建它。例如,假设命令
ack-grep mySourceFile.cc.o
打印如下内容:然后您可以通过以下方式构建
mySourceFile.cc.o
: