关于nix,glibc的错误解决,实践案例:onekey-firmware

概要

目标是运行

整体架构流程

nix的用法

最主要的是,在运行模拟器过程中,出现报错

 /nix/store/1n2l5law9g3b77hcfyp50vrhhssbrj5g-glibc-2.37-8/lib/libpthread.so.0: version `GLIBC_PRIVATE' not found (required by /nix/store/jcb7fny2k03pfbdqk1hcnh12bxgax6vf-glibc-2.33-108/lib/librt.so.1)

 采用方法,对应位置,查找所谓的glibc,发现所需要的文件当中,确实缺乏GLIBC_PRIVATE

strings /nix/store/1n2l5law9g3b77hcfyp50vrhhssbrj5g-glibc-2.37-8/lib/libpthread.so.0 | grep GLIBC
strings /nix/store/jcb7fny2k03pfbdqk1hcnh12bxgax6vf-glibc-2.33-108/lib/librt.so.1 | grep GLIBC

strings /lib/librt.so.1 | grep GLIBC

 

因为之前进行了glibc的更新安装,再次重新编译,依旧无解

确认您的系统是否已安装 glibc 库。您可以运行以下命令进行检查:

sudo ldconfig -v | grep libc.so
如果输出中没有任何东西,那么 glibc 库没有被正确安装。

如果 glibc 库已经安装,但 GLIBC_PRIVATE 仍然无法找到,请尝试更新您的库。您可以使用以下命令来更新 glibc:

sudo apt-get update
sudo apt-get install libc6-dev
这将会尝试从 apt 软件源安装可用的最新版本的 libc6-dev 软件包。

使用系统自带的包管理器更新 glibc 库。例如,在 Ubuntu 上,您可以运行以下命令:
sudo apt-get update
sudo apt-get upgrade libc6
如果您使用的是 NixOS 系统,则可以使用 nix-env 命令来安装正确的 glibc 库版本。例如:
nix-env -i glibc

技术名词解释

  • glibc

技术细节

可能是glibc的升级问题,所以进行处理

http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz
 tar -xf glibc-2.7.tar.gz
 cd glibc-2.7
 mkdir build
 cd build/
 ../configure -prefix=/usr -disable-profile -enable-add-ons -with-headers=/usr/include

Centos /lib64/libc.so.6: version `GLIBC_2.28‘ not found (required by_version `glibc_2.28' not found_Shine Leon的博客-CSDN博客

問題:configure: error: no acceptable C compiler found in $PATH

 nix环境下,对gcc进行加载

nix-env -i gcc

 ../configure -prefix=/usr -disable-profile -enable-add-ons -with-headers=/usr/include

问题:checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile

对gcc进行升级

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y gcc-8 g++-8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8


 ../configure -prefix=/usr -disable-profile -enable-add-ons -with-headers=/usr/include

问题:configure: error:
*** These critical programs are missing or too old: as ld gcc make

 对make进行升级

在 nix 环境下,您可以使用以下命令升级 make 工具:
 

nix-env --upgrade make

这会将 make 工具升级到最新版本。如果你想安装特定版本,可以使用以下命令:

nix-env -iA nixpkgs.make-4.2.1

将其中的版本号替换为您需要的特定版本即可。

小结

提示:这里可以添加总结

例如:

提供先进的推理,复杂的指令,更多的创造力。

猜你喜欢

转载自blog.csdn.net/m0_73016265/article/details/131003949