我是C++編譯器的新手。我想知道如何更改某些設置的g ++來調用我想要的正確的ld版本。C++鏈接器 - g ++如何獲取ld
對於〔實施例,我想:
克++ 「一些共享庫和文件」
然後在/ usr /斌/ LD將在內部調用。我該怎麼做才能使g ++調用/home/alex/binutils-2.25/bin/ld取而代之?
非常感謝。
亞歷
我是C++編譯器的新手。我想知道如何更改某些設置的g ++來調用我想要的正確的ld版本。C++鏈接器 - g ++如何獲取ld
對於〔實施例,我想:
克++ 「一些共享庫和文件」
然後在/ usr /斌/ LD將在內部調用。我該怎麼做才能使g ++調用/home/alex/binutils-2.25/bin/ld取而代之?
非常感謝。
亞歷
不是一般的好主意,因爲這兩者是緊密集成,並是有原因的GCC有與海灣合作委員會的特定構建適當的工具其自己的搜索路徑,所以最好切換工具鏈作爲一個整體。
不管怎樣,由讓·弗朗索瓦·法布爾提供的鏈接是正確的,它的-B
參數的建議,並沒有這樣的權利有關PATH
環境變量,因爲PATH
是當沒有比賽在GCC的內部通道,通常有一些只有搜索那裏。
你可以看看GCC使用當前路徑找到它的組件g++ -print-search-dirs
,你對programs
感興趣。它也很容易檢查哪兒你的編譯器發現ld
(或任何其他組件)與g++ -print-prog-name=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
專門配置Ø (不是通常的方式,而是),它覆蓋了所有其他路徑。
@juanchopanza嘿我很抱歉,但這不是一個重複,他想調用另一個ld(這裏的一些想法:http://cboard.cprogramming.com/cplusplus-programming/98185-how-specify-ld-when- make-binary-using-gplusplus.html) –
@ Jean-FrançoisFabre哎呀!重開。 – juanchopanza
簡而言之:用'g ++ -c'分別編譯源文件,然後把所有的東西作爲一個單獨的階段鏈接在一起。搜索「g ++ compile only」,「makefiles」 – Drop