[問題] 找不到 GLIBC_2.14

看板C_and_CPP (C/C++)作者 ( )時間13年前 (2013/05/06 02:45), 編輯推噓5(5012)
留言17則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux x86_64, Debian, glibc version 2.13 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) glibc? 問題(Question): 執行程式時找不到函式庫 ./pptoken-ref: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./pptoken-ref) 補充說明(Supplement): 如訊息, 我無法執行這個程式, 因為它要求 2.14, 但機器上只有 2.13 請問有沒有辦法修改執行檔騙過它, 讓它使用 2.13 呢? (1) 我只有執行檔, 不可能取得原始碼 (2) 這是工作站的機器, 我沒有 root 權限 (3) 我本機電腦是32位元, 但是這個程式是64位元的, 所以應該不可能用 VM 跑..吧? 希望能有辦法騙過它使用 2.13 版本函式庫 用 readelf -s 讀到的結果如下: (...略...) 92: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSs12_S_empty_repEv@GLIBCXX_3.4 (2) 93: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSsaSERKSs@GLIBCXX_3.4 (2) 94: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.14 (10) 95: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSs6appendERKSs@GLIBCXX_3.4 (2) 96: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZNSt11logic_errorC1ERKSs@GLIBCXX_3.4 (2) (...略...) 完整訊息 http://ideone.com/yx4lmw 所以好像只有 memcpy 一個函數有用到? 希望板上的前輩能提供一些意見, 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.56.191

05/06 02:48, , 1F
為什麼 32-bit 的電腦可以裝 64-bit 的 OS? @@"
05/06 02:48, 1F

05/06 02:57, , 2F
拿來跑的OS是工作站的(64-bit), 我沒能在本機跑
05/06 02:57, 2F

05/06 07:44, , 3F
have you tried searching for string ``GLIBC_2.14''
05/06 07:44, 3F

05/06 07:44, , 4F
in the elf file? (just a naive guess though)
05/06 07:44, 4F

05/06 09:05, , 5F
我猜跟 Steam 一樣是給 Ubuntu 用的套裝軟體
05/06 09:05, 5F

05/06 09:06, , 6F
也許可以參考 Steam for Debian 的做法
05/06 09:06, 6F

05/06 10:20, , 7F
LD_LIBRARY_PATH=./ 不過有一點點安全性風險就是
05/06 10:20, 7F
謝謝大家的意見! 單單設 LD_LIBRARY_PATH 跟改 elf 裡的字串沒有效果 好像 libc.so.6 會直接去判版本 等下打算朝幾個方向試 1. 自己編個 glibc 2.14 放到 local 資料夾, 然後就設 LD_LIBRARY_PATH 2. 照搜尋到的 http://stackoverflow.com/questions/14879644/ 這篇 直接試著去改 elf Orz 不過往後還會有其他檔案... ※ 編輯: suhorng 來自: 118.166.56.191 (05/06 22:50) ※ 編輯: suhorng 來自: 118.166.56.191 (05/06 23:09)

05/07 00:47, , 8F
為了以後的n個作業 自己編個glibc一勞永逸
05/07 00:47, 8F

05/07 08:53, , 9F
是說不能在自己 PC 上弄個 VM 來跑嗎 XD
05/07 08:53, 9F

05/07 23:34, , 10F
依我的經驗 自己編glibc必定陷入相依性地獄
05/07 23:34, 10F

05/07 23:35, , 11F
而就算是要把所有用到的.so全部複製來並設path
05/07 23:35, 11F

05/07 23:36, , 12F
光是找齊.so檔這回事就已經是相依性地獄 XD
05/07 23:36, 12F

05/07 23:49, , 13F
後來自己編 glibc 然後它就可用了
05/07 23:49, 13F

05/07 23:50, , 14F
至少我希望以後的東西不會用到其他 library QQ
05/07 23:50, 14F

05/07 23:50, , 15F
我只有跑那個程式才把LD_LIBRARY_PATH打開,希望不會影響..
05/07 23:50, 15F

05/07 23:51, , 16F
@Bencrie: 還沒試過耶! 結果我的CPU好像有virtualization,
05/07 23:51, 16F

05/07 23:52, , 17F
這樣用 VirtualBox 也許可以用@@
05/07 23:52, 17F
文章代碼(AID): #1HXgYptR (C_and_CPP)
文章代碼(AID): #1HXgYptR (C_and_CPP)