天天看點

linux c檔案編譯,Linux下如何編譯C程式?

原标題:Linux下如何編譯C程式?

Windows下常用IDE來編譯,Linux下直接使用gcc來編譯,編譯過程是Linux嵌入式程式設計的基礎,也是嵌入式高頻基礎面試問題。

一、指令行編譯及各個細分編譯過程

hello.c示例代碼:

# include

intmain( void)

{

printf( "Hello worldn");

return0;

}

編譯:

gcc hello.c -o hello

linux c檔案編譯,Linux下如何編譯C程式?

如有必要,還需回答出細分的幾個步驟:

gcc -E hello.c -o hello.i # 預處理階段

gcc -S hello.i -o hello.s # 編譯階段

gcc -c hello.s -o hello.o # 彙編階段

gcc hello.o -o hello # 連結階段

具體細節可查往期筆記: 《C程式編譯過程》

二、借助make來編譯

少量檔案時可以使用上面方法編譯。源碼檔案較多時,可借用make工具。make通過解析Makefile檔案來執行一些gcc指令進行編譯。

首先得建立一個Makefile檔案,如:

hello:hello.c

gcc hello.c -o hello

編譯運作:

linux c檔案編譯,Linux下如何編譯C程式?

上面更細分編譯過程的Makefile檔案如下:

linux c檔案編譯,Linux下如何編譯C程式?

關于make及Makefile更多内容可查閱:

三、借助CMake生成Makefile

實際開發很少會像上面一樣自己編寫Makefile檔案,可借助cmake工具來生成。

CMake是一個跨平台的安裝(編譯)工具,可以用簡單的語句來描述所有平台的安裝(編譯過程)。

1、指令行操作

首先輸入 cmake --version 指令檢視cmake版本,若還沒安裝則執行如下指令安裝:

sudo apt install cmake

linux c檔案編譯,Linux下如何編譯C程式?

下面開始實驗示範。我們的 cmake_test 檔案夾下有一個 hello.c 檔案,在同檔案夾下建立一個 CMakeLists.txt 檔案:

linux c檔案編譯,Linux下如何編譯C程式?

輸入如下内容:

cmake_minimum_required (VERSION 3.10.2)

project (cmake_test)

add_executable(cmake_test hello.c)

然後在 cmake_test 目錄下依次輸入如下指令生成Makefile檔案:

mkdir build # 建立build檔案夾

cd build # 進入build檔案夾

cmake ../ # 在cmake_test檔案夾下生成Makefile

執行結果如下:

linux c檔案編譯,Linux下如何編譯C程式?

關于 CMakeLists.txt 檔案具體文法感興趣的朋友可自行查閱資料進行學習。

2、使用cmake-gui

上述是在指令行下使用cmake生成Makefile進行進行編譯的方法。我們也可以使用圖形化界面來生成Makefile檔案。cmake-gui是cmake的一個圖形化工具。下面依舊以執行個體作為示範。

我們把上一小節的 CMakeLists.txt 與 hello.c 檔案放入新建立的檔案夾cmake-gui_test中:

linux c檔案編譯,Linux下如何編譯C程式?

在終端輸入 cmake-gui 指令啟動cmake-gu圖形化工具。若未安裝可輸入如下指令進行安裝:

sudo apt install cmake-qt-gui

如:

linux c檔案編譯,Linux下如何編譯C程式?

啟動 cmake-gui :

linux c檔案編譯,Linux下如何編譯C程式?
linux c檔案編譯,Linux下如何編譯C程式?
linux c檔案編譯,Linux下如何編譯C程式?

檢視cmake-gui_test檔案夾:

linux c檔案編譯,Linux下如何編譯C程式?

編譯運作:

linux c檔案編譯,Linux下如何編譯C程式?

以上分享了一些編譯的過程及方法,都是基礎内容,需要熟練掌握。如果覺得文章對你有幫助,歡迎轉發。

免責聲明:本文系網絡轉載,版權歸原作者所有。如涉及作品版權問題,請與我們聯系,我們将根據您提供的版權證明材料确認版權并支付稿酬或者删除内容。傳回搜狐,檢視更多

責任編輯: