gpt4 book ai didi

c++ - 在CMake项目下编译单个文件?

转载 作者:可可西里 更新时间:2023-11-01 14:52:10 28 4
gpt4 key购买 nike

我正在开发一个 C++ 项目,该项目将包含在一个更大的项目中。

我已经看到在更大的项目中(是一个 Qt 应用程序,它是从 qmake 生成的)我能够从 linux 命令行编译单个文件,只需输入特定文件的相对路径作为参数制作。

另一方面,我在自己的项目中使用 CMake。当我修改一个编译单元的一些代码时,我必须修改它的头文件,我必须等待很长时间才能编译它的依赖项,然后再编译它自己的源文件。但在某些情况下,我更愿意检查 *.cc 文件中的源代码是否可无错编译。

有没有办法像 qmake 那样从 CMake 生成 Makefile?切换到 qmake 不再是一种选择。

最佳答案

您不必向 CMake 脚本添加额外的自定义目标,因为 CMake 生成的 Makefile 已经包含每个 .cc 文件的 .o 目标。例如。如果你有一个名为 mySourceFile.cc 的源文件,您的构建目录中将有一个 Makefile,它定义了一个名为 <Some Path>/mySourceFile.cc.o 的目标。 .如果你cd进入你的构建目录,你可以使用grepack-grep找到定义这个目标的 Makefile,然后 cd进入该 Makefile 的目录并构建它。

例如假设命令 ack-grep mySourceFile.cc.o打印类似:

foo/bar/Makefile
119:x/y/z/mySourceFile.o: x/y/z/mySourceFile.cc.o
123:x/y/z/mySourceFile.cc.o:
124: # recipe for building target

然后你可以构建mySourceFile.cc.o通过做:

cd foo/bar && make x/y/z/mySourceFile.cc.o

关于c++ - 在CMake项目下编译单个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271387/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com