能否忽略库的版本号强制运行程序

2016-11-10 21:33:11 +08:00
 algas
最近编译程序各种失败,决定偷懒拷贝一个在别的机器上编译好的版本。
但是执行的时候发现 glib 库错了一个小版本号

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found

我机器上的 glibc++的版本是 3.4.21 ,我想一个小版本号可能没有什么影响吧,看能不能强制运行一下试试。
2743 次点击
所在节点    Linux
8 条回复
pagxir
2016-11-10 21:46:10 +08:00
重新连接即可,或者静态连接也 ok
reus
2016-11-10 23:21:53 +08:00
有时可以,最好不要。
两个版本有什么不同可以看 release notes.
choury
2016-11-11 01:37:58 +08:00
那你把那个机器上的 so 也拷过来嘛
lhbc
2016-11-11 02:33:16 +08:00
何必挖个坑自己跳呢……
还是把编译环境搞好吧
cnwuwil
2016-11-11 02:37:23 +08:00
把 glibc 静态链接到程序中即可
linhua
2016-11-11 23:13:16 +08:00
Osk
2016-11-14 13:09:24 +08:00
ldd 分析下需要的库,用这个方法我把一个 Archlinux 上的 elf+so 拷到 Android 上,正常运行无问题
Osk
2016-11-14 13:11:05 +08:00
还设置了 LD_LIBRARY_PATH 变量为 archlinux 拷过来的 so 所在文件夹

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/319672

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX