首先介紹一下gcc各種引數的含義:
-o:指定生成的輸出檔案;
-e:僅執行編譯預處理;
-s:將c**轉換為彙編**;
-wall:顯示警告資訊;
-c:僅執行編譯操作,不進行連線操作。
1:gcc -c -fpic *.c
生成與位置無關的 .o 檔案(目標檔案):
-fpic表明使用位址無關**。
2:gcc -shared -wl -o libmyab.so a.o b.o
-shared 引數使其生成是動態庫而不是普通執行程式。
-wl選項告訴編譯器將後面的引數傳遞給鏈結器。
3:gcc -shared -wl,-soname,libmyab.so.1 -o libhello.so.1.10 a.o b.o
soname是乙個鏈結庫的名字,只包含共享庫的主版本號,主版本號一致即可保證庫函式的介面一致,因此應用程式的.dynamic段只記錄共享庫的soname,只要soname一致,這個共享庫就可以用。
-d選項告訴編譯器在編譯時增加對-d後面的巨集的定義
5:ar rcs lib***.a xx1.o xx2.o
建立乙個靜態庫
引數r:在庫中插入模組(替換)。當插入的模組名已經在庫中存在,則替換同名的模組。
引數c:建立乙個庫。不管庫是否存在,都將建立。
引數s:建立目標檔案索引,這在建立較大的庫時能加快時間。
-i:指定頭檔案目錄
Linux系統下gcc命令使用詳解
目錄 1.gcc的安裝 以ubuntu為例 sudo apt get install build essential 安裝完後可以通過 gcc version 檢視版本。讓我們在通過gcc編譯可執行檔案的過程中掌握其基礎應用。準備 先在當前目錄下 使用vim新建乙個.c檔案 例如 666.c vim...
GCC 編譯命令筆記
將 檔案編譯並鏈結為可執行檔案 gcc o hello hello.c i usr include 引用標頭檔案位置 2.編譯檔案 gcc c hello.c 3.需要鏈結庫 gcc o hello hello.c usr lib libm.a 絕對路徑 gcc o hello helloc lm ...
linux下命令 學習筆記
2013.12.14 1 顯示分屛 每次在終端用ls,可能會出現檔案過多,導致前部分的內容無法檢視,這是可以使用 ls less命令,進入分屛顯示模式,鍵盤中pgup和pgon控制上下頁,退出按快捷鍵shift q。2 google chrome的安裝目錄在 opt google chrome 其他...