文章來源:嵌入式大雜燴 面試
做者: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文件夾:
編譯運行:
以上分享了一些編譯的過程及方法,都是基礎內容,須要熟練掌握。若是以爲文章對你有幫助,能夠從原文渠道轉發~