链接特定的GLIBC版本

时间:2015-06-30 15:56:49

标签: c++ linux cross-compiling glibc beagleboneblack

我正在使用带有crosscompiller的远程主机pc,以便为BeagleBone Black构建和部署cpp代码。我的问题是,因为我试图用<time.h>函数运行我的代码,我收到了一条消息:

/lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.17' not found (required by /home/debian/app)

所以我使用ldd --version查看我在BBB上获得的版本并得到:

ldd (Debian EGLIBC 2.13-38+deb7u8) 2.13
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

有没有办法告诉我的crosscompiller在链接而不是2.17时使用GLIBC 2.13版?很少的研究为我提供了一些信息,即在BBB上更新GLIBC并不是一个简单的解决方案,所以我想知道这种做法。我会帮助你。

1 个答案:

答案 0 :(得分:2)

经过大量的实验,我遇到了这个解决方案。可以在Beaglebone Black上将libc版本更新为2.17。首先分别从https://launchpad.net/ubuntu/raring/armhf/libc6/2.17-0ubuntu5https://launchpad.net/ubuntu/raring/armhf/libc6-armel/2.17-0ubuntu5.1下载libc6_2.17-0ubuntu5_armhf.deb(用于使用硬浮点数进行编译)或libc6-armel_2.17-0ubuntu5.1_armhf.deb(用于使用软浮点数进行编译)。

接下来,使用scp将文件复制到BBB。

scp libc6_2.17-0ubuntu5_armhf.deb root@beaglebone.local:/root

scp libc6-armel_2.17-0ubuntu5.1_armhf.deb root@beaglebone.local:/root

最后,安装包。

sudo dpkg --install libc6_2.17-0ubuntu5_armhf.deb

sudo dpkg --install libc6-armel_2.17-0ubuntu5.1_armhf.deb

尽管ldd --version仍然显示为2.13,但它适用于我的设备上需要新版本的功能。您也可以考虑使用sudo apt-get -f install来删除旧版本。

希望它有所帮助!