例如,在 A.h 中:
class A{
void method();
};
在 A.cpp 中:
#include "A.h"
void A::method(){/*do stuff*/};
在 main.cpp 中
#include "A.h"
int main(){
A a;
a.method();
}
如何通过在我的 main.cpp 文件中仅包含 A.h 来访问 A.cpp 中方法的定义?是否有涉及 makefile 或 IDE 的技巧?
最佳答案
Is there a trick involving makefiles or IDEs?
这个“技巧”称为链接——将所有已编译的模块和库一起加载到可执行文件中。在您的情况下,您可以手动执行此操作:
g++ -c a.cpp -o a.o // compiling a.cpp and producing object file a.o
g++ -c main.cpp -o main.o // compiling main.cpp and producing object file main.o
g++ main.o a.o -o myprog // linking all object files together with system libraries and producing executable myprog
对于不同的编译器,命令可能看起来不同,但过程是一样的。当然,您不想一次又一次地键入所有内容,因此您希望将其自动化。 IDE 或 makefile 为您完成的工作,不涉及任何技巧或魔法。
关于c++ - 如何通过包含相应的 .h 文件从 .cpp 中获取函数/类定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499600/