最近我开展了一个项目来创建我使用的静态和动态版本,这是由另一个程序员在这里编写和维护的。大部分时间我都是为练习做的,但是其他程序肯定会找到这台机器的方法,所以我想为什么不创建一个动态库并在任何肯定会使用这个库的新可执行文件上节省一些空间。因此,我今天在机器上安装了一个新程序,我编写了一个shell脚本来检查丢失的库,然后再将其放入运行环境中。在我的生产/客户系统上,脚本生成了以下消息:
/lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/libUtilityQQ.so)
我的开发和生产机器都在喘息,它们都是Raspberry Pi 2。我不确定我是如何获得glibc的libc 2.17的。生产pi有libc 2.13,从/ lib中的链接判断。我发现/etc/apt/sources.list已经在我的开发盒上被改变了(毫无疑问),并且机器正在运行不同的内核,但这在以前从来就不是问题。
主要发展项目
uname -a :
Linux qfuel-dev 4.1.6+ #810 PREEMPT Tue Aug 18 15:19:58 BST 2015 armv6l GNU/Linux
的/etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb http://http.debian.net/debian wheezy-backports main
生产pi:
uname -a :
Linux pa0036 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
的/etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
很明显,这些机器有不同的内核。这可能是我可以更新glibc的一种方法。(?)
这个客户pi位于几个州之外,因此我不知道是否通过远程更新他们的内核是一个好主意,甚至可能。
现在我想到了,我最近建立了一个新版本的g ++,但我没有使用它,继续使用4.6.3。我是否认为新的libc与编译器代码一起构建了?