Makefile和GCC日常用法
GCC
-I、-L、-l
gcc -o hello hello.c -I /home/hello/include-L /home/hello/lib –lworld
(大寫i) -I/home/hello/include:表示將/home/hello/include目錄作為第一個尋找標頭檔案的目錄,尋找順序:/home/hello/include--> /usr/include --> /usr/local/include
-L /home/hello/lib:表示將/home/hello/lib目錄作為第一個尋找庫檔案的目錄,尋找順序:/home/hello/lib --> /lib --> /usr/lib --> /usr/local/lib
(小寫l)-lworld表示在上面的lib的路徑中尋找libworld.so動態庫檔案(如果gcc編譯選項中加入了“-static”表示尋找libworld.a靜態庫檔案)
靜態庫連線
ar rcs libhycu.a *.o
動態連結通俗解析
http://www.cnblogs.com/likwo/archive/2012/05/09/2492225.html
-o0 //不優化程式碼,編譯器不會對程式碼進行重排
-fPIC -share //http://blog.sina.com.cn/s/blog_54f82cc201011op1.html
gcc -MM first.c
產生.h的依賴,輸出first.o :first.c *.h
gcc -MD main.c
產生main.d檔案,裡面內容為:main.o:main.c
mkdep ${CFLAGS} ${SRCS}
產生.depend檔案,裡面內容時:main.o:main.c
Makefile
更多內容請看《Makefile詳解》
$@、$^、$<
$@ 代表目標
$^ 代表所有的依賴物件
$< 代表第一個依賴物件
.c.o:
這句話的意思就是 %.o : %.c
也就是說,所有的.o檔案,依賴於對應的.c檔案
常用函式
src=$(wildcard *.c ./sub/*.c)
dir=$(notdir $(src))
obj=$(patsubst %.c,%.o,$(dir) )
wildcard把 指定目錄 ./ 和 ./sub/ 下的所有字尾是c的檔案全部展開。
notdir把展開的檔案去除掉路徑資訊
patsubst把$(dir)中的變數符合字尾是.c的全部替換成.o
未完待續
相關文章
- makefile 條件判斷用法和 自定函式用法簡單記錄函式
- Git 的日常工作用法Git
- 在Ubuntu環境下用gcc命令執行c程式以及Makefile編譯UbuntuGCC程式編譯
- makefile =和:=的區別
- GUN、GCC、LLVM和ClangGCLVM
- gcc 和 g++ 的聯絡和區別,使用 gcc 編譯 c++GC編譯C++
- Makefile學習之路(2) — Makefile的變數和萬用字元變數字元
- Makefile基本規則和原理
- Makefile中:=, =, ?=和+=的含義
- gcc和gdb的基本操作GC
- gcc 和 g++ 的區別GC
- Makefile
- GCC編譯和連結過程GC編譯
- gccGC
- [c++/gcc] Centos 7.9升級 gcc 4.8.5 到 gcc11 [轉]C++GCCentOS
- 關於gcc、make和CMake的區別GC
- 【Makefile】5-Makefile變數的基礎變數
- Linux下GCC降低版本 gcc 4.4.6LinuxGC
- ARM和GCC最佳化等級optimization levelGC
- win10怎麼看gcc安裝成功_win10安裝和配置GCC的方法Win10GC
- 【知識點】 gcc和g++的聯絡和區別GC
- cgo: C compiler "gcc" not found 報錯安裝gccGoCompileGC
- makefile之overrideIDE
- makefile規則
- uboot和系統移植擴充套件--主Makefile分析boot套件
- CentOS7編譯和安裝GCC7.5CentOS編譯GC
- Notepad++編譯和執行C語言 (GCC)編譯C語言GC
- not in 和 not exists 比較和用法
- 使用makefile編譯編譯
- Makefile使用教程1
- makefile 簡明教程
- Makefile學習(一)
- Makefile好助手:pkgconfigGC
- makefile檔案案例
- makefile快速入門
- 一、靜態庫和動態庫,Makefile專案管理專案管理
- gcc版本升級GC
- Linux升級GCCLinuxGC
- GCC命令詳解GC