Ubuntu系統---終端下用g++進行c++項目
目錄
一、編譯工具(g++/gcc)和編輯工具(vim/gedit)
二、C語言 的編譯與運行
三、C++語言 的編譯與運行
四、gcc/g++的詳細過程
“一、二、三”是在當前文件夾下,編譯一個文件為一個可執行文件的例子。對於編譯多個文件為一個可執行文件,以及如何創建一個工程和編譯一個工程(一個大點的工程不止一個.cpp,還有.h,...),后續在學、在作筆記。
正文
一、編譯工具(g++/gcc)和編輯工具(vim/gedit)
在ubuntu環境下對C/C++進行編譯首先保證ubuntu系統中包含編譯工具(g++/gcc)和編輯工具(vim),C語言和C++對應的編譯器:gcc -> C , g++ -> C++ 。
如果環境中不存在可以在終端中輸入以下命令進行安裝:
sudo apt-get install build-essential sudo apt install vim sudo apt-get install gcc sudo apt-get install g++
二、C語言 的編譯與運行
步驟:(1)寫.c文件; (2)編譯.c文件; (3)運行可執行文件
(1)寫.c文件
1).c文件hello.c代碼如下:
#include<stdio.h> int main() { printf("Hello world !\n"); return 0; }
(2)編譯.c文件
在當前路徑下編譯.c文件:
gcc -o hello hello.c
編譯完成后可以看到在和hello.c相同目錄下有一個hello的可執行文件。
(3)運行可執行文件
在當前路徑下運行編譯后的可執行文件:
./hello
(注意一定要加上路徑才能運行,點表示當前路徑。直接hello不添加路徑,不能運行)
三、C++語言 的編譯與運行
步驟:(1)寫.cpp文件; (2)編譯.cpp文件; (3)運行可執行文件
(1)寫.cpp文件
# .cpp文件hello.cpp代碼如下:
#include<iostream> using namespace std; int main() { cout << "Hello world !" << endl; return 0; }
(2)編譯.cpp文件
在當前路徑下編譯.cpp文件:
g++ -o hello hello.cpp
編譯完成后可以看到在和hello.cpp相同目錄下有一個hello的可執行文件。
(3)運行可執行文件
在當前路徑下運行編譯后的可執行文件:
./hello
(注意一定要加上路徑才能運行,點表示當前路徑。直接hello不添加路徑,不能運行)
四、gcc/g++的詳細過程
可以手動進行這四個步驟。
第一步:預處理。#號開頭的代碼全被解決掉(預編譯,包含庫,宏定義等等),產生一個后綴.i的文件以便下一步使用。
gcc -E hello.c (不會產生.i文件,文件內內容打印在了終端,所以需要將這些信息重定向到.i文件)
gcc -E hello.c >> hello.i
第二步:編譯。這一步主要檢查語法錯誤。產生一個后綴.s的文件(匯編文件)
gcc -S hello.i (大寫字母S)
第三步:匯編。產生后綴.o的object目標文件,二進制,但不可以運行,因為缺少庫信息
gcc -c hello.s
第四步:鏈接。添加庫信息,產生一個后綴.o的可執行文件
gcc hello.o -o hello