簡體   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