linux下編譯C++文件基本命令

一個C/C++源代碼要變成一個可執行文件,需要經過預處理(Pre-processing)-編譯(Compiling)-彙編(Assembling)-鏈接(Link)

   基本流程爲:
              test.c --預處理--test.i --編譯-- test.s --彙編-- test.o --鏈接-- test.exe

 

預處理

-E 選項使用g++/gcc將源代碼預處理後不執行其他動作。
下面的命令將test.cpp預處理,並在標準輸出中顯示:

g++ -E test.cpp 

後面加上 -o 選項表示將源代碼預處理後輸出在指定文件中,比如test.i:

g++ -E test.cpp -o test.i

編譯

-S 選項使用g++/gcc將預處理後的文件編譯,翻譯成彙編代碼。只編譯不彙編
下面的命令將會編譯test.i文件,並自動在當前文件夾生成test.s文件

g++ -S test.i

若要指定其他輸出名,則需 -o 指定,比如生成名爲xxx.s的彙編代碼文件

g++ -S test.i -o xxx.s

彙編

-c 選項將編譯生成的test.s文件生成二進制目標代碼
下面的命令將在當前文件夾自動生成test.o的二進制目標代碼文件

g++ -c test.s 

如果要指定輸出文件名,則需 -o 指定,比如生成xxx.o的二進制目標代碼文件

g++ -c test.s -o xxx.o

鏈接

鏈接階段是將相關的目標文件鏈接起來,形成一個整體,生成可執行文件
無選項鍊接
下面的命令會把二進制目標文件test.o所需的相關文件鏈接成一個整體,並在當前文件夾自動生成一個名爲a.out的可執行文件

g++ test.o

如果要執行這個可執行文件,需要輸入命令

./a.out

當然也可以指定生成的可執行文件的文件名

g++ test.o -o test.exe

單個源文件直接生成可執行文件

當然g++/gcc也可以直接把源代碼直接生成可執行文件
下面的命令將test.cpp直接在當前文件夾生成a.out可執行文件,若要指定文件名,可使用 -o 選項

g++ test.cpp
g++ test.cpp -o test.exe

多個源文件直接生成可執行文件

也可以將多個源代碼編譯鏈接成一個可執行文件
下面的命令將test.cpp直接在當前文件夾生成a.out可執行文件,若要指定文件名,可使用 -o 選項

g++ test1.cpp test2.cpp 
g++ test1.cpp test2.cpp -o test.exe

一個C/C++源代碼要變成一個可執行文件,需要經過預處理(Pre-processing)-編譯(Compiling)-彙編(Assembling)-鏈接(Link)

基本流程爲:
test.c --預處理--test.i --編譯-- test.s --彙編-- test.o --鏈接-- test.exe

預處理

-E 選項使用g++/gcc將源代碼預處理後不執行其他動作。
下面的命令將test.cpp預處理,並在標準輸出中顯示:

g++ -E test.cpp 

後面加上 -o 選項表示將源代碼預處理後輸出在指定文件中,比如test.i:

g++ -E test.cpp -o test.i

編譯

-S 選項使用g++/gcc將預處理後的文件編譯,翻譯成彙編代碼。只編譯不彙編
下面的命令將會編譯test.i文件,並自動在當前文件夾生成test.s文件

g++ -S test.i

若要指定其他輸出名,則需 -o 指定,比如生成名爲xxx.s的彙編代碼文件

g++ -S test.i -o xxx.s

彙編

-c 選項將編譯生成的test.s文件生成二進制目標代碼
下面的命令將在當前文件夾自動生成test.o的二進制目標代碼文件

g++ -c test.s 

如果要指定輸出文件名,則需 -o 指定,比如生成xxx.o的二進制目標代碼文件

g++ -c test.s -o xxx.o

鏈接

鏈接階段是將相關的目標文件鏈接起來,形成一個整體,生成可執行文件
無選項鍊接
下面的命令會把二進制目標文件test.o所需的相關文件鏈接成一個整體,並在當前文件夾自動生成一個名爲a.out的可執行文件

g++ test.o

如果要執行這個可執行文件,需要輸入命令

./a.out

當然也可以指定生成的可執行文件的文件名

g++ test.o -o test.exe

單個源文件直接生成可執行文件

當然g++/gcc也可以直接把源代碼直接生成可執行文件
下面的命令將test.cpp直接在當前文件夾生成a.out可執行文件,若要指定文件名,可使用 -o 選項

g++ test.cpp
g++ test.cpp -o test.exe

多個源文件直接生成可執行文件

也可以將多個源代碼編譯鏈接成一個可執行文件
下面的命令將test.cpp直接在當前文件夾生成a.out可執行文件,若要指定文件名,可使用 -o 選項

g++ test1.cpp test2.cpp 
g++ test1.cpp test2.cpp -o test.exe

使用C++11標準編譯

如果要使用C++11版本特性,則需要使用 -std=c++11 選項

g++ -std=c++11 test.cpp -o test.exe

轉載自:https://www.cnblogs.com/yyehl/p/6862153.html 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章