2016-03-02 81 views
-2

我們如何知道我們的系統使用哪種類型的鏈接器(靜態/動態)?如何知道鏈接器的類型

它決定了我們使用過的庫的類型(靜態/動態)還是還有其他的東西?

回答

0

工具鏈(如GCC + GNU binutils的)將提供一個連接(如/usr/bin/ld) ,您使用當你是建築物他們。

操作系統將提供一個動態鏈接程序(例如/lib/ld-linux.so),該 加載共享庫(如果有的話)需要通過程序並解決符號引用 在運行時 ,根據編碼 編碼的信息,鏈接器可執行編譯時間

+0

謝謝!對不起,不能提高你的答案,因爲聲譽較低......再次感謝! – Hiren

+0

@DeadCode要[接受答案](http://stackoverflow.com/help/accepted-answer),請點擊綠色選中標記。 –

0

您是您項目的主人。因此,當您使用編譯器鏈接器選項創建和設置構建配置時,需要爲您的代碼創建宏定義並將其傳遞給編譯器和其他選項。使用此宏來識別代碼中庫的類型。

編譯器命令:

gcc -D LINK_STATIC a.cpp ... 

代碼:

#ifdef LINK_STATIC 
    ... static implementation ... 
#end 

#ifdef LINK_DINAMIC 
    ... dinamic implementation ... 
#end 
相關問題