日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GCC详解-gcc之-Wl选项

發布時間:2023/12/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GCC详解-gcc之-Wl选项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、介紹

-Wl后面的東西是作為參數傳遞給鏈接器ld的。比如:

gcc -Wl,aaa,bbb,ccc

最后會被解釋為:

ld aaa bbb ccc

2、-Wl,-Map=xxx.txt 生成map文件

如下會生成map文件mymap.txt。

gcc -Wl,-Map=mymap.txt -g main.c -o main

3、?-Wl,-Bstatic 和 -Wl,-Bdynamic 指定鏈接動態庫或者靜態庫

-Wl,-Bstatic -laaa -lbbb -lccc -Wl,-Bdynamic -lddd -l ccc

-Wl,-Bstatic 后面的庫是靜態鏈接的;

-Wl,-Bdynamic 后面的都是動態鏈接的。

4、?-Wl,--as-needed和?-Wl,--no-as-needed

在生成可執行文件的時候,通過 -lxxx 選項指定需要鏈接的庫文件,連接器會在可執行文件的文件頭中會記錄下該庫的信息。
在可執行文件運行的時候,動態加載器會讀取文件頭信息,并加載所有的鏈接庫。

在這個過程中,如果用戶指定鏈接了一個毫不相關的庫,則這個庫在最終的可執行程序運行時也會被加載,如果類似這樣的不相關庫很多,會明顯拖慢程序啟動過程。

通過指定 -Wl,--as-needed 選項,鏈接過程中,鏈接器會檢查所有的依賴庫,沒有實際被引用的庫,不再寫入可執行文件頭。最終生成的可執行文件頭中包含的都是必要的鏈接庫信息。
-Wl,--no-as-needed 選項不會做這樣的檢查,會把用戶指定的鏈接庫完全寫入可執行文件中。

總結

以上是生活随笔為你收集整理的GCC详解-gcc之-Wl选项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。