假设我有这些文件:
main.cpp
, ClassA.cpp
, ClassA.h
, ClassB.cpp
, ClassB.h
- 主要有
#include "ClassA.h"
和#include "ClassB.h"
并且每个.cpp
文件包含其各自的.h
文件。这是正确的吗?
现在我正在使用 g++ *.cpp
进行编译,之后我得到一个可执行文件 a.exe
(Windows)
- 我的问题是这是正确的方法吗?假设我只对一个文件(cpp 或 h)进行更改,此命令是否还会重新编译未更改的文件(因为我在文件夹中看不到除 a.exe 之外的新文件)?请解释。另外,我该如何防止这种情况发生?
P.S 我不熟悉 make,也不想使用它,所以请不要在答案中提及它,我阅读了 Using G++ to compile multiple .cpp and .h files但我需要更多关于我的问题的解释。
最佳答案
如果你想手动做,你可以将你所有的.cpp文件编译成目标文件
g++ -c *.cpp
并链接所有目标文件
g++ *.o -o a.out
如果ClassA.cpp有改动,重新编译ClassA.cpp即可
g++ -c ClassA.cpp
然后再次链接它们
g++ *.o -o a.out
至少,您不需要重新编译未更改的.cpp 文件。
关于c++ - 使用 g++ 编译多个 .cpp 和 .h 文件。我做对了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26814485/