
关于nix,glibc的错误解决,实践案例:onekey-firmware
如果 glibc 库已经安装,但 GLIBC_PRIVATE 仍然无法找到,请尝试更新您的库。如果您使用的是 NixOS 系统,则可以使用 nix-env 命令来安装正确的 glibc 库版本。采用方法,对应位置,查找所谓的glibc,发现所需要的文件当中,确实缺乏GLIBC_PRIVATE。因为之前进行了glibc的更新安装,再次重新编译,依旧无解。提供先进的推理,复杂的指令,更多的创造力。最主
概要
目标是运行
整体架构流程
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
問題: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
将其中的版本号替换为您需要的特定版本即可。
小结
提示:这里可以添加总结
例如:
提供先进的推理,复杂的指令,更多的创造力。
更多推荐
所有评论(0)