繁体   English   中英

如何从命令行编译和链接多个文件?

[英]How do I compile and link multiple files from the command line?

我曾经使用Visual Studio作为C ++的编译器。 我最近在cygwin中使用g ++。 我的问题是我不知道如何使用cygwin进行继承。 下面的代码仅供参考,以使我的问题更加清楚。

基类:

// A.h:
class A{
void func1();
};
class B:A{
func2();
};

//-------------
//A.cpp:
#include"A.h";
A::func1(){
};
//-----------

//B.cpp:
#include"A.h";
B::func2(){
func1();
};

int main(){
B b.
b.func2();
return 0;}
//----------------

我在Visual Studio中运行(类似于)没有任何问题。 但是我不知道如何在cygwin中运行它。 如何在A.cpp中包含Ah,以便在B.cpp中运行main()。

您需要先将类实现文件编译成目标文件,然后再链接它们。

如果要使用g ++编译器 ,则可以运行以下命令...

  1. g++ -c A.cpp
  2. g++ -c B.cpp
  3. g++ Ao Bo main.cpp -o my_program

这可以通过Makefile自动执行,因此您不必输入所有内容。 正如其他人提到的, GDB也可以用于调试,但是您需要在编译器标志中添加“ -g”选项以创建调试符号。

另外,您在主函数的第1行的末尾有一个句点,而不是分号。

了解makefile文件...或在命令行中键入

g++ -Wall -c -g -o A.o A.cpp
g++ -Wall -c -g -o B.o B.cpp
g++ -o myProgram.exe A.o B.o

您需要将两个cpp文件都编译为目标文件,然后将它们链接在一起。 我希望您使用g ++,并且它在PATH中。

注意:

  • 我用-g生成“调试”文件
  • 我使用-Wall来显示所有警告(黄金法则:修复警告)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM