gpt4 book ai didi

c++ - C++ 快速编译

转载 作者:太空狗 更新时间:2023-10-29 20:15:57 27 4
gpt4 key购买 nike

我有一个 c++ 程序,它有很多功能,每个功能都有不同的 .cpp 文件。在主程序中,我只提供几个参数并调用函数。然而,完整的东西的编译需要很多时间。对于每次编译,我只更改主程序中的几个参数,并保持所有功能不变。有什么办法可以加快编译速度吗?

最佳答案

您正在重新编译不必要的代码。通常 IDE 会自动处理这个问题。否则,这取决于您如何编译代码。例如这样的行:

g++ *.cpp

g++ -o program a.cpp b.cpp c.cpp

非常慢,因为在每次编译时,你都会重新编译所有内容。

如果您正在编写 Makefile,则应谨慎编写以避免重新编译。例如:

.PHONY: all
all: program

program: a.o b.o c.o
g++ -o $@ $^ $(LDFLAGS)
%.o: %.cpp
g++ $(CXXFLAGS) -o $@ $<
# other dependencies:
a.o: a.h
b.o: b.h a.h
c.o: c.h

在上面的例子中,改变c.cpp会引起c.cpp的编译和程序的链接。更改 a.h 会导致编译 a.ob.o 并链接程序。也就是说,在每次构建时,您编译尽可能少的文件以使程序保持最新。

旁注:编写 Makefile 时要小心。如果你错过了一个依赖项,你可能不会编译足够的文件,你可能最终会遇到难以发现的段错误(最好的情况)。另请查看 gcc-M* 选项手册,您可以在其中使用 gcc 本身生成依赖项,然后 Makefile 中包含 生成的输出。

关于c++ - C++ 快速编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294517/

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