GCC選項 Xlinker和 Wl區別

2022-05-06 18:45:09 字數 659 閱讀 8590

寫下給自己備忘,在一次使用gcc的過程中發現了原來傳遞給鏈結器ld可以同時使用xlinker和wl兩種命令,這兩個命令都可以正確傳遞給ld作為使用,現在總結下兩者的區別。

xlinker後面跟的引數第乙個是空格,而wl後面跟的第乙個字元是","。

對於傳遞「-assert definitions」命令給ld來說,xlinker要一下子傳遞兩個引數需要寫兩次「xlinker」,比如-xlinker -assert -xlinker defintions而不能一下子寫成-xlinker "-assert definitions"因為鏈結器會認為這是乙個引數,而不是兩個引數。如果此時你用的是gnu的linker,通常更簡便的做法就是用option=value的方式,比如-xlinker -map -xlinker output.mp可以簡寫成-xlinker -map=output.map。而對於wl來說,因為他的引數分割是用「,」這樣可以不用像xlinker一樣一下子寫多個,只需要寫多個逗號即可,就拿這個例子來說,可以寫成-wl,-map,output.map當然了,如果你用的是gnu的linker你也可以-wl,-map=output.map。

所以對於rpath來說使用xlinker可以寫成-xlinker -rpath -xlinker (-xlinker -rpath=),對於wl來說可以寫成-wl,rpath,(-wl,rpath=)。

GCC編譯選項

gcc g 在執行編譯工作的時候,總共需要4步 1.預處理,生成.i的檔案 預處理器cpp 2.將預處理後的檔案不轉換成組合語言,生成檔案.s 編譯器egcs 3.有彙編變為目標 機器 生成.o的檔案 彙編器as 4.連線目標 生成可執行程式 鏈結器ld 引數詳解 c 只啟用預處理,編譯,和彙編,也...

gcc 編譯選項

gcc 編譯選項,自己翻譯的.gcc 編譯選項,自己翻譯的.o 設定輸出檔名 c 只編譯,不連線.e 只做預編譯.pipe 在多個編譯過程之間使用管道.version 顯示版本.static 靜態連線.ansi c 模式下支援所有 iso c90 標準的 c 程式,c 模式下去除對 gnu c 擴充...

gcc 編譯選項

wall 大部分警告 wextra 一些額外的警告 werror 當出現警告時轉為錯誤,停止編譯 wconversion 一些可能改變值的隱式轉換,給出警告。wno unused parameter 函式中出現未使用的引數,不給出警告。wold style cast c風格的轉換,給出警告 wove...