面試官問Linux下如何編譯C程序,如何回答?爲你編譯演示

文章來源:嵌入式大雜燴 面試

做者:ZhengNL編程

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

1、命令行編譯及各個細分編譯過程學習

hello.c示例代碼:ui

#include<stdio.h>命令行

intmain(void)blog

{開發

printf("Hello world\n");源碼

return0;qt

}

編譯:

gcc hello.c -o hello


 

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

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程序編譯過程》

2、藉助make來編譯

少許文件時可使用上面方法編譯。源碼文件較多時,可借用make工具。make經過解析Makefile文件來執行一些gcc命令進行編譯。

首先得建立一個Makefile文件,如:

hello:hello.c

gcc hello.c -o hello

編譯運行:


 

上面更細分編譯過程的Makefile文件以下:


 

關於make及Makefile更多內容可查閱:

【Linux筆記】make工程管理工具(一)

【Linux筆記】make工程管理工具(二)

3、藉助CMake生成Makefile

實際開發不多會像上面同樣本身編寫Makefile文件,可藉助cmake工具來生成。

CMake是一個跨平臺的安裝(編譯)工具,能夠用簡單的語句來描述全部平臺的安裝(編譯過程)。

一、命令行操做

首先輸入cmake --version命令查看cmake版本,若還沒安裝則執行以下命令安裝:

sudo apt install cmake


 

下面開始實驗演示。咱們的cmake_test文件夾下有一個hello.c文件,在同文件夾下建立一個CMakeLists.txt文件:


 

輸入以下內容:

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

執行結果以下:


 

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

二、使用cmake-gui

上述是在命令行下使用cmake生成Makefile進行進行編譯的方法。咱們也可使用圖形化界面來生成Makefile文件。cmake-gui是cmake的一個圖形化工具。下面依舊以實例做爲演示。

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


 

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

sudo apt install cmake-qt-gui

如:


 

啓動cmake-gui:


 

 

 

查看cmake-gui_test文件夾:


 

編譯運行:


 

以上分享了一些編譯的過程及方法,都是基礎內容,須要熟練掌握。若是以爲文章對你有幫助,能夠從原文渠道轉發~

 

相關文章
相關標籤/搜索