Ubuntu 是一個基于 Debian 的開源 Linux 操作系統
-c:僅編譯源代碼文件,生成目標文件(.o 文件)。不會鏈接到可執行文件。
-S:僅編譯源代碼文件,生成匯編文件(.s 文件)。不會鏈接到可執行文件。
-E:僅預處理源代碼文件,不進行編譯和匯編。適用于需要查看預處理結果的場景。
-g:在生成的目標文件中添加調試信息,以便使用調試器(如 gdb)進行調試。
-O:對生成的目標文件進行優化??梢灾付▋灮墑e,如 -O1、-O2 或 -O3。優化級別越高,編譯后的代碼執行速度越快,但生成的文件越大。
-Wall:顯示所有警告信息。有助于發現潛在的問題和錯誤。
-Werror:將警告信息視為錯誤信息。如果編譯過程中出現警告,程序將無法編譯通過。
-pthread:為程序啟用 POSIX 線程支持。適用于多線程程序。
-I:指定頭文件目錄。告訴編譯器在哪里查找頭文件。
-L:指定庫文件目錄。告訴編譯器在哪里查找庫文件。
-l:指定鏈接的庫。例如,-lmysql 表示鏈接 MySQL 庫。
-o:指定輸出的可執行文件名。例如,-o my_program my_program.c 表示將編譯后的程序命名為 my_program。
-static:靜態鏈接程序所需的所有庫。生成的可執行文件較大,但可以在沒有相應庫的系統上運行。
-shared:動態鏈接程序所需的庫。生成的可執行文件較小,但需要在系統上安裝相應的庫。
這些編譯參數可以根據實際需求進行組合使用,以實現不同的編譯目標。例如,要編譯一個帶有調試信息、優化級別為 2 的多線程 C 程序,可以使用以下命令:
gcc -c -g -O2 -Wall -pthread my_program.c -o my_program.o
gcc -o my_program my_program.o -lmysql -pthread
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。