【发布时间】:2021-11-01 01:39:45
【问题描述】:
我正在为嵌入式设备 (Moxa UC-8100) 交叉编译应用程序,并且遇到了 GLIBC 版本问题。
我安装了 Debian 9(按照嵌入式设备供应商的指示)并使用 arm-linux-gnueabihf 工具链。在设备上运行我的构建时,它说
moxa@Moxa:~$ ./fabs-uc8100 -h
./fabs-uc8100: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.17' not found (required by ./fabs-uc8100)
./fabs-uc8100: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.16' not found (required by ./fabs-uc8100)
当我在设备上运行ldd --version 时,我可以看到它的版本为 2.13:
moxa@Moxa:~$ ldd --version
ldd (Debian EGLIBC 2.13-38+deb7u8) 2.13
所以,问题很明确(我的程序是用 2.16 构建的,但我有 2.13 可用),但我该如何解决这个问题?
更新我在 Debian 9 64 位 VM 上使用 standard Debian packages, including some Moxa packages 安装了交叉编译工具链:
将deb http://debian.moxa.com/debian stretch main contrib non-free 添加到/etc/apt/sources.list.d/moxa.sources.list,然后:
user@Linux:~$ apt-get install moxa-archive-keyring
user@Linux:~$ dpkg --add-architecture armhf
user@Linux:~$ apt-get install crossbuild-essential-armhf
user@Linux:~$ apt-get install libssl-dev:armhf
【问题讨论】:
标签: arm embedded cross-compiling glibc eglibc