這是一個我反覆遇到的問題,通常涉及到插件,但最近我遇到它試圖找出一些構建系統問題。我的關注主要是基於* nix的系統,但我想它也適用於windows。執行(動態)鏈接所需的最小信息量?
問題是,動態鏈接所需的最小信息量是多少?我知道像Debian這樣的Linux發行版只有'i686',這足夠了。不過,我想這裏有一些隱含的信息,只要它們使用-march=i686
進行編譯,我可能無法動態鏈接任何共享對象,對嗎?
那麼爲了能夠成功加載共享對象,必須正確匹配什麼?我知道對於C++來說,即使編譯器(有時候是版本)也必須匹配,因爲名稱會變形,但我希望c不是這種情況。
任何想法讚賞。
編輯:
尼爾的回答讓我意識到我真的不談論動態鏈接,或者更確切地說,問題是雙重的,
- 什麼需要靜態鏈接,並
- 動態鏈接需要什麼
我對第一個猜測有更高的期望。
我目前正在考慮的是一個構建系統,我可以共享構建結果,而不必每次編譯所有內容,這裏需要爲每個屬性組合編譯一個庫在這裏,像i686 linux,sparc solaris和專有的基於ppc的平臺,這樣每個開發人員都可以簡單地將他們的工作鏈接到這些預先構建的庫。 – falstro 2010-02-08 15:04:22
正如我憎惡首字母縮略詞,我在這裏添加它來澄清其他人:ABI是應用程序二進制接口。請參閱:http://en.wikipedia.org/wiki/Application_binary_interface – 2010-02-08 22:59:39