我正在为 x86_64 主机上的
QNX aarch64
架构交叉编译我的代码库。
我使用的 gcc 版本是 12.2,根据错误,它期望最小的 glib 版本为
2.25
:-
lib/gcc/aarch64-unknown-nto-qnx8.0.0/12.2.0/cc1: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by lib/gcc/aarch64-unknown-nto-qnx8.0.0/12.2.0/cc1)
/lib/x86_64-linux-gnu/libc.so.6
=> 基本上都是版本2.23
所以我必须通过从我的自定义路径加载 glibc (libc.so) 和其他库来解决这个问题,其中我需要
libc.so.6
版本和 2.36
版本。我发现 this 答案很有用,并尝试相应地加载库,这是我的编译命令:-
/home/unix-build/lib64/ld-linux-x86-64.so.2 --library-path /home/unix-build/lib64 /home/usr/bin/qcc -V12.2.0,gcc_ntoaarch64le -fdata-sections -ffunction-sections -DSTD_NOWINSOCK2 -DRELEASE -DNDEBUG -o threadsMessageDefs.o -c /llvm/repo/../../utilities/threads/threadsMessageDefs.c
/home/unix-build/lib64
=> 包含满足要求的所有必需库,包括 libc.so.6(2.36
版本)。
由于某些原因,库无法从
/home/unix-build/lib64
加载。我仍然面临同样的问题,其中 lib/gcc/aarch64-unknown-nto-qnx8.0.0/12.2.0/cc1
指的是系统路径 /lib/x86_64-linux-gnu/libc.so.6
我需要对 QNX 采取不同的方法吗? 我错过了什么吗?请指教。
/lib/x86_64-linux-gnu/libc.so.6 => 基本上是2.23版本
这里没有基本上——要么是 2.23,要么不是。
所以我必须通过从我的自定义路径加载 glibc (libc.so) 和其他库来解决这个问题
您不必,您正在选择。
正确的解决方案是
gcc-12.2
在你的系统上,这样它就可以工作了(TM),或者
gcc-12.2
,请升级您的系统以与其兼容(即升级到使用GLIBC-2.25或更高版本的系统)。