linux rpm 软件包地址 https://pkgs.org/
缺少 ld
ld 是binutils(可以在https://pkgs.org/中查询)中的一个文件(Files会列出binutils包含的文件)。
binutils 包括 nm ar ld 这种工具。
如果服务器上原本就已经安装过binutils的话,使用下列命令删除
rpm -qa | grep binutils 查看是否安装过
rpm -e binutils 删除
在 https://pkgs.org/ 查找 binutils的rpm包,比如:binutils-2.30-108.el8.x86_64.rpm
# 安装离线包
rpm -ivh binutils-2.30-108.el8.x86_64.rpm
查看是否有 ld nm ar 命令
安装 make
在 https://pkgs.org/ 查找软件包make,下载 make-3.82-24.el7.x86_64.rpm。
rpm -ivh make-3.82-24.el7.x86_64.rpm
安装cmake
在 cmake 官网地址:https://cmake.org/files/ 选一个版本进行下载
如:http://www.cmake.org/files/v2.8/cmake-2.8.8-Linux-i386.tar.gz
# 解压即可
tar -zxvf cmake-2.8.8-Linux-i386.tar.gz
ln -s /home/user1/cmake_home/bin/cmake /usr/bin/cmake
安装gcc g++
主要参考这篇文章的步骤: Centos离线安装gcc-c++,make, nginx
按照这篇文章的步骤,测试一下 g++ 编译代码,可能会出现如下错误:ld: stdc++ not found. 类似这种,原因是少了一个依赖没有装。
在这个基础上增加一个rpm依赖包(因为这篇参考文章中还少了一个依赖没装),就是 libstdc+±8.5.0-3.el8.x86_64.rpm,这个依赖是 libstdc+±devel-8.5.0-3.el8.x86_64.rpm 的一个依赖。
libstdc+±8.5.0-3.el8.x86_64 有一个地方需要注意,就是它包含的文件(pkgs的Files查看中)有一个libstdc++.so.6 或者类似这种名称,这个就是上面ld需要的库文件,需要增加一个链接。
ln -s /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so
参考
- https://segmentfault.com/a/1190000040003049
- https://zhuanlan.zhihu.com/p/440093023