C語言編譯過程
編譯過程主要分為四步:預處理、編譯、匯編、鏈接
預處理:主要用于查找頭文件、展開宏
編譯:把.i文件編譯成.s文件
匯編:把.s文件匯編為.o文件
鏈接:把多個.o文件鏈接成一個app
以上四個步驟主要由3個命令實現,cll、as、collect2,這三個命令由一個命令觸發:gcc -o hello hello.c
查看具體的編譯步驟,可加參數-v查看
gcc代碼選項
在使用gcc命令時可以通過添加選項實現多種功能
庫分為靜態庫(a文件)和動態庫(so文件),其中靜態庫表示將主函數和庫打包在一起,會比較大,而動態庫只是告訴主函數庫在哪里,不進行一起打包,會比較小。
靜態庫:ar crs libsub.a sub.o
動態庫:gcc -shared -o libsub.so sub.o