簡體   English   中英

C ++鏈接器 - g ++如何獲取ld

[英]C++ linker - How can g++ pick up ld

我是C ++編譯器的新手。 我想知道如何更改g ++的某些設置以調用我想要的正確的ld版本。

例如,我嘗試過:

g ++“一些共享庫和文件”

那么/ usr / bin / ld將在內部調用。 我該怎么做才能使g ++調用/home/alex/binutils-2.25/bin/ld

非常感謝。

亞歷克斯

一般來說這不是最好的想法,因為這兩者是緊密集成的,並且有一個原因GCC有自己的搜索路徑,並為GCC的特定構建提供適當的工具,因此最好將工具鏈作為一個整體進行切換。

無論如何,Jean-FrançoisFabre提供的鏈接在其-B參數建議中是正確的,而對於PATH環境變量則不然,因為僅在GCC內部路徑中沒有匹配時才搜索PATH ,並且通常存在某些內容。

您可以查看GCC使用g++ -print-search-dirs查找其組件的當前路徑,您對programs感興趣。 使用g++ -print-prog-name=ld檢查編譯器找到ld (或任何其他組件)的位置也很容易,它還允許檢查-B如何影響結果,如:

$ g++ -print-prog-name=ld
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld
$ g++ -B/home/rik/bin -print-prog-name=ld
/home/rik/bin/ld

比較那個

$ PATH=/home/rik/bin:$PATH g++ -print-prog-name=ld
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld

[編輯]

順便說一句,如果您的GCC是使用--with-ld選項(不是通常的方式,但是)專門配置的,那么即使這樣也無法幫助您,它會覆蓋所有其他路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM