Linux在没有root权限的情况下安装gcc环境

摘要:
./contrib/download_prerequisites另外GCC不能直接在其源码中编译,而是在它的目录下新建一个文件夹,然后进入这个文件夹配置并编译安装,命令如下。../configure--disable-checking--enable-languages=c,c++--disable-multilib--prefix=/path/to/software/gcc--enable-threads=posixmake-j16makeinstall然后将其添加到环境变量就可以了,添加的时候注意'$PATH'和'$LD_LIBRARY_PATH'放在后面,因为系统是从前向后寻找运行的。在.bashrc文件中加入下面两行。exportPATH=/home/lbz/opt/gcc/bin:$PATHexportLD_LIBRARY_PATH=/home/lbz/opt/gcc/lib/:/home/lbz/opt/gcc/lib64:$LD_LIBRARY_PATH之后执行source.bashrc但是我在输入后提示错误if:ExpressionSyntax。至此gcc安装完成,可以gcc-v和g++-v查看下是否安装成功。

1. 安装gcc

首先下载新版本的gcc:http://ftp.gnu.org/gnu/gcc/

安装GCC主要依赖三个库:GMP, MPFR 和MP)。之前的旧版本可能需要手动依次安装这些依赖库,但较新的版本其实只需要在GCC目录下运行下面这个命令就可以自动下载这几个组件,好像不用联网也可以。

./contrib/download_prerequisites

另外GCC不能直接在其源码中编译,而是在它的目录下新建一个文件夹,然后进入这个文件夹配置并编译安装,命令如下。

../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix=/path/to/software/gcc --enable-threads=posix
make -j16
make install

然后将其添加到环境变量就可以了,添加的时候注意'$PATH'和'$LD_LIBRARY_PATH'放在后面,因为系统是从前向后寻找运行的。在.bashrc文件中加入下面两行。

export PATH=/home/lbz/opt/gcc/bin:$PATH
export LD_LIBRARY_PATH=/home/lbz/opt/gcc/lib/:/home/lbz/opt/gcc/lib64:$LD_LIBRARY_PATH

之后执行

source .bashrc

但是我在输入后提示错误 if: Expression Syntax。这是由于shell的问题。执行命令bash或者exec bush就可以了。

至此gcc安装完成,可以gcc -v和g++ -v查看下是否安装成功。

2. 安装binutils

gcc安装完成后编译代码,但是报错

/usr/bin/ld: BFD version 2.20.51.0.2-5.47.el6_9.1 20100205 internal error, aborting at reloc.c line 443 inbfd_get_reloc_size
/usr/bin/ld: Please report this bug.
collect2: ld returned 1 exit status

这是由于ld版本太老的缘故,需要安装新版本的binutils,下载地址:http://ftp.gnu.org/gnu/binutils/

之后也是一样进行编译和安装。

../configure --prefix=/path/to/software/binutilsmake -j16 && make install

添加环境变量如下

export PATH=/home/lbz/opt/binutils/bin:$PATH
export LD_LIBRARY_PATH=/home/lbz/opt/binutils/lib/:$LD_LIBRARY_PATH

现在就可以成功编译运行代码了。

3. 安装gdb

http://ftp.gnu.org/gnu/gdb/

http://ftp.gnu.org/gnu/texinfo/

免责声明:文章转载自《Linux在没有root权限的情况下安装gcc环境》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇分析友盟错误日志解决C#编译中"csc不是内部或外部命令"的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Underlying cause: java.sql.SQLException : Access denied for user 'root'@'s150' (using password: YES)

hive初始化元数据的时候出错,该root用户没有权限 [xiaoqiu@s150 /soft/hive/conf]$ schematool -initSchema -dbType mysql SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:f...

vim命令以及gcc编译器的常用cmd

Gcc常用命令:         -c    仅对源文件进行编译,不链接生成可执行文件。常用于查错和只生成目标文件。     -o    经过gcc处理过后的结果保存在-o后面的文件中,可以是多种文件。如无参数,默认名称不同     -v    查看版本信息     -g    在可执行文件中加入调试信息,相当于Windows下的Debug版本。方便使用g...

Centos下堡垒机Jumpserver V3.0环境部署完整记录(2)-配置篇

前面已经介绍了Jumpserver V3.0的安装,基于这篇安装文档,下面说下Jumpserver安装后的的功能使用: 一、jumpserver的启动 Jumpserver的启动和重启 [root@test-vm001 install]# /opt/jumpserver/service.sh start/restart 二、按照Jumpserver部署过...

Linux系统处理木马病毒的思路

一、清除木马程序步骤 1.1 执行命令,每1秒刷新一次,显示整个命令路径,而不是命令的名称。 [root@linux-node1 ~]# top -d 1 -c 1.2 查找可疑进程(比较奇怪的进程名称)如:sshz、crond.conf、.sshd等 1.3 发现可疑进程后,记录PID,然后执行如下命令 [root@linux-node1 ~]# kil...

VMware 安装Linux系统

VMware 增加Linux系统 1、启动VMware,进入主界面 2、点击“创建新的虚拟机”,进入创建虚拟机向导界面,建议初学者选择“典型(推荐)” 3、点击“下一步”按钮,进入“安装客户机操作系统”界面选择“安装来源”,建议初学者选择第三项,创建空白硬盘的虚拟机 如果有一定经验的话,可以选择第二项,通过“浏览”按钮选择我们Linux系统的映像文...

关于Linux上的SSH服务无法启动,提示“/var/empty/sshd must be owned by root and not group or world-writable”错误

首先通过物理终端进入到linux上,手工检查ssh发现没运行# /etc/init.d/sshd statussshd is stopped 手动启动服务,发现报告权限错误。# /etc/init.d/sshd start Starting sshd:/var/empty/sshd must be owned by root and not group o...