编译期间无法从自定义路径加载库

问题描述 投票:0回答:1

我正在为 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 采取不同的方法吗? 我错过了什么吗?请指教。

gcc compilation linker dynamic-linking qnx
1个回答
0
投票

/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或更高版本的系统)。
© www.soinside.com 2019 - 2024. All rights reserved.