簡體   English   中英

如何修復“版本`GLIBC_2.14'未找到”錯誤?

[英]How do I fix a “version `GLIBC_2.14' not found” error?

我在Ubuntu 12.04下編譯了一個C程序,用它構建了一個Debian軟件包,並希望在運行Debian Lenny的服務器上安裝它。

上次我這樣做(大約兩個月前)它工作:我可以安裝包並運行二進制文件。 但現在我收到以下錯誤消息:

(binary's name): /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by (binary's name))

除了將我的機器升級到Ubuntu 12.4之外,我們為代碼帶來的唯一重大改變是調用strdup() ,我必須啟用_POSIX_C_SOURCE=200809L功能測試宏。

將服務器升級到最新的Debian版本不是我的首選選項,因為它不在我的直接控制之下。

我該如何解決這個問題?

我認為這里的關鍵信息是'升級我的機器'。 所以當這個工作之前,你在12.04之前的東西上建造和包裝? 如果是這樣,那么問題是12.04現在附帶了更新版本的libc(顯然是2.14),你的二進制文件現在記錄了對該版本libc的依賴。 當您嘗試在可能使用較舊版本的libc的Lenny上運行時,鏈接器會檢測到Lenny版本不支持2.14 API,並且失敗。

我認為最好的方法可能是在12.04進行開發和測試,然后當你想為特定的Debian版本創建軟件包時,使用pbuilder或類似方法來創建debs。 這將確保用於打包構建的庫與目標平台匹配。

暫無
暫無

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

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