文章來源:嵌入式大雜燴
作者:ZhengNL
Windows下常用IDE來編譯,Linux下直接使用gcc來編譯,編譯程序是Linux嵌入式編程的基礎,也是嵌入式高頻基礎面試問題,
一、命令列編譯及各個細分編譯程序
hello.c示例代碼:
#include<stdio.h>
intmain(void)
{
printf("Hello world\n");
return0;
}
編譯:
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程式編譯程序》
二、借助make來編譯
少量檔案時可以使用上面方法編譯,原始碼檔案較多時,可借用make工具,make通過決議Makefile檔案來執行一些gcc命令進行編譯,
首先得創建一個Makefile檔案,如:
hello:hello.c
gcc hello.c -o hello
編譯運行:
上面更細分編譯程序的Makefile檔案如下:
關于make及Makefile更多內容可查閱:
【Linux筆記】make工程管理工具(一)
【Linux筆記】make工程管理工具(二)
三、借助CMake生成Makefile
實際開發很少會像上面一樣自己撰寫Makefile檔案,可借助cmake工具來生成,
CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的陳述句來描述所有平臺的安裝(編譯程序),
1、命令列操作
首先輸入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檔案具體語法感興趣的朋友可自行查閱資料進行學習,
2、使用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檔案夾:
編譯運行:
以上分享了一些編譯的程序及方法,都是基礎內容,需要熟練掌握,如果覺得文章對你有幫助,可以從原文渠道轉發~

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/196558.html
標籤:Linux
