linux下原始碼編譯
linux下原始碼編譯c/c++,通常使用gnu工具鏈。c/c++的編譯過程,通常為原始檔(.c、.cc、.cpp字尾檔案),編譯為中間目標檔案(即生成為.s、.o等字尾的中間檔案),再通過鏈結生成可執行檔案(編譯器的編譯過程大致分為四個步驟:預處理、編譯、彙編和鏈結)。
建立乙個專案檔案project目錄結構
注釋:以上的結構是最簡單的專案目錄結構,在大型專案中,project有更多的檔案目錄,比如os資料夾、driver資料夾、mmi資料夾等,裡面的檔案也可能有子資料夾,比如計時器資料夾、訊號量資料夾等,但在這些資料夾的下面包括inc和src資料夾,而且每個資料夾裡面都可能含有乙個makefile檔案。
makefile
簡介:makefile下每條命令下執行正確都會返回0,錯誤返回非0,然後檢測退出。
make -t=touch 更新目標檔案時間但不進行新的編譯
make -q=question 如果目標不在,列印輸出。目標在,不顯示。
make -f=file 指定編譯執行的makefile檔案
makefile中包含的內容:顯式規則、隱晦規則、變數定義、檔案指示、注釋#
注意:如果要在makefile中使用「#」字元,可以用反斜線進行轉義,如:「\#」
gnu的make工作時的執行步驟:
1、 讀入所有的makefile,讀入被include的其他makefile
2、 初始化檔案中的變數
3、 推導隱晦規則,並分析所有規則
4、 為所有的目標檔案建立依賴關係鏈
5、 根據依賴關係,決定哪些目標要重新生成
6、 執行生成命令
makefile的基本規則:
target:prerequistes;command
command
makefile的使用
1、文件一般包括:立項資訊(比如可行性分析等)、需求分析、系統設計、詳細設計(比如函式之間的關係模型等)、codeing、測試文件(比如整合測試、系統測試等)
2、src一般是原始檔,包括inc資料夾中的.h檔案、src資料夾中的.c檔案
3、makefile檔案一般和.c檔案放在一起。
makefile檔案,即編寫編譯規則
例如:
#只編譯不連線 用-c
#指定標頭檔案的搜尋目錄 用-i
#install:admin.o menu.o stu.o tea.o
#install是目標,冒號後面的是依賴(即中間部分的目標檔案,.o檔案需要用.c檔案生成)
#編寫makefile檔案時,gcc必須變成紅色才正確,gcc前面要使用乙個或者兩個tab鍵)
在makefile中的命令,必須要以tab鍵起始,一般需要設定tab鍵為四個空格。
在使用make時,如果修改了.c檔案,make只會重新編譯修改了的.c檔案,但是如果修改了.h檔案,則必須先刪除原來的可執行檔案,再用make生成新的可執行檔案。
makefile編寫說明
1.定義 makefile是通過制定規則來編譯程式的乙個指令碼而已。在linux中使用make命令來執行makefile檔案。2.命名 makefile或makefile,若是指定其他名稱。如 makefile.可以這樣使用make f makefile或make clean f makefile ...
makefile編寫方法
什麼是makefile?或許很多winodws的程式設計師都不知道這個東西,因為那些windows的ide都 為你做了這個工作,但我覺得要作乙個好的和 professional的程式設計師,makefile還是要懂 這就好像現在有這麼多的html的編輯器,但如果你想成為乙個專業人士,你還是要了解 h...
makefile檔案編寫
hello.c include include function.h int main function.c includeint fun1 int fun2 int fun3 function.h ifndef fun h define fun h int fun1 void int fun2 v...