我在Linux上使用二進制格式分發的共享C庫。問題在於依賴關係被設置爲需要開發機器上可用的版本。例如,每個版本都需要(當時)最新的glibc,並且只需要在其系統上使用libreadline的精確版本。避免太具體的依賴關係
我已經聯繫了開發人員,他們不知道該怎麼做。據我所知,他們並沒有有意識地使用最新的功能,所以圖書館應該繼續使用較老的依賴關係。我認爲他們在Linux上使用gcc,但他們也使用複雜的make系統來控制其他編譯器爲Windows和Unix構建。
如何以及在多大程度上可以管理構建過程,以便庫需要僅具有足夠版本的依賴關係,並且還會接受更高版本?
This是一個相關的問題。
編輯:爲了清楚起見,我想知道如何構建程序,以便他們將接受具有特定版本號或更高版本號的依賴項。無論開發人員是編譯它還是我這樣做,我都希望能夠分發一個二進制文件,該文件不需要構建環境中存在的相關性版本。
編輯2:改寫問題後,我意識到這已被覆蓋很多次。一些最佳Q & A的:
Deploying Yesod to Heroku, can't build statically
Linking against an old version of libc
How can I link to a specific glibc version?
這尤其值得一提的是我更喜歡使用免費的開源軟件。您依賴於製作人爲您的系統構建軟件的良好意願。 –
它們是rpm/apt「依賴關係」還是調用libreadline本身的庫代碼? – Rob11311
@Basile:哎呀,對不起,暗示該來源不可用。儘管如此,圖書館非常龐大而且很難建造。 – user3720403