【发布时间】:2015-09-17 12:43:50
【问题描述】:
我正在使用带有交叉编译器的远程主机 pc 来构建 cpp 代码并将其部署到 BeagleBone Black。我的问题是,由于我尝试使用 <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.
有没有办法告诉我的交叉编译器在链接时使用 GLIBC 版本 2.13 而不是 2.17?很少有研究为我提供了在 BBB 上更新 GLIBC 不是简单的解决方案的信息,所以我想知道这种方式。我会感谢所有帮助。
【问题讨论】:
-
如果尝试“--nodefaultlibs”(gcc.gnu.org/onlinedocs/gcc/Link-Options.html),安装在另一个目录 glibc 2.13 并使用“gcc -L”告诉哪里可以找到 libc 2.13?
-
如何为我的交叉编译器安装特定的 GLIBC 版本?我下载的是一个完整的包。
-
我没有为交叉编译器做过这个,所以我不能确定 100%。但是对于 glibc,您可以轻松在一台计算机上拥有两个版本的
glibc:stackoverflow.com/questions/847179/…。所以我假设你需要用你的交叉编译器构建 glibc 2.13 并把它放在默认目录中。
标签: c++ linux cross-compiling glibc beagleboneblack