linux ubuntu gcc,ubuntu centos debian
ubuntu之gcc、g++版本管理
在Ubuntu系统中管理gcc与g++版本对于不同C/C++项目的编译至关重要。不匹配的版本可能导致Cmake和make无法正常运行。
首先,我们需要查看当前的g++和gcc版本,以便了解系统中已安装的版本。通过运行相关命令,可以轻松获取这些信息。
接着,查看系统中已存在的gcc和g++版本目录,确保所使用版本符合项目需求。
为了确保安装与项目匹配的gcc和g++版本,我们需要添加源。通过添加合适的源,可以获取最新或特定版本的编译器。
安装对应项目的gcc和g++版本,确保在开发过程中使用正确的编译器版本。安装步骤通常涉及使用包管理器命令。
利用update-alternatives工具,可以支持在不同gcc和g++版本间进行切换,便于灵活管理系统的编译器版本。
另外,使用update-alternatives命令的--config选项,可以基于特定的配置在不同版本之间进行切换,确保编译环境的灵活性。
检查版本切换是否成功,确保系统已经正确使用了所需的gcc和g++版本。
在使用Linux进行C/C++编译时,还需注意两个常见问题:第一,有时需要显示地export gcc和g++的环境变量,以确保编译器版本生效。第二,每次执行cmake时,应先清除cmake的cache,然后重新编译,以避免出现重复错误。
ubuntu下怎么安装arm-linux-gcc
1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/song/software,如下图,记住这个路径,等会还会用到。
2、使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下如下图
通过下图可以看到解压成功了,并且解压后的文件存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,这个存放路径可得记住,如下图
3、接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim/etc/profile编辑profile文件,添加环境变量。
在profile中最后一行添加: export PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图32行
编写完保存就好了
4、使用命令:source/etc/profile使环境变量生效
5、在终端上输入命令 arm-linux再按Tab键,可以显示出命令列表,说明环境变量设置成功了
6、使用命令:arm-linux-gcc-v会出现下面的错误提示:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
说是出现这种问题的原因是由于Ubuntu12.04用的是64位的,解决方法就是使用命令:sudo apt-get install ia32-libs装一些32位的库
7、待安装完32位的库之后,再使用命令:arm-linux-gcc-v,这一次就成功了
8、验证,编译一个hello.c文件
使用命令:arm-linux-gcc hello.c-o hello看是否编译成功
ubuntu怎么安装gcc
是网上查阅后总结的,,可能会相似
在Ubuntu下安装GCC和其他一些Linux系统有点不一样。
方法一:
该方法超简单:
sudo apt-get build-depgcc
就上面这条命令就可以搞定
方法二:
sudo apt-get install build-essential
还是简单,一句命令也可以搞定
安装完了可以执行
gcc--version
的命令来查看版本,输出如下:
gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7)
Copyright(C)2007FreeSoftwareFoundation,Inc.
编译则使用gcc命令。要往下学习首先就得熟悉gcc命令的用法。
gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。
一.常用编译命令选项
假设源程序文件名为test.c。
1.无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。
2.选项-o
用法:#gcc test.c-o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
3.选项-E
用法:#gcc-E test.c-o test.i
作用:将test.c预处理输出test.i文件。
4.选项-S
用法:#gcc-S test.i
作用:将预处理输出文件test.i汇编成test.s文件。
5.选项-c
用法:#gcc-c test.s
作用:将汇编输出文件test.s编译输出test.o文件。
6.无选项链接
用法:#gcc test.o-o test
作用:将编译输出文件test.o链接成最终可执行文件test。
7.选项-O
用法:#gcc-O1 test.c-o test
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
二.多源文件的编译方法
如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]
1.多个文件一起编译
用法:#gcc testfun.c test.c-o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。
2.分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:
#gcc-c testfun.c//将testfun.c编译成testfun.o
#gcc-c test.c//将test.c编译成test.o
#gcc-o testfun.o test.o-o test//将testfun.o和test.o链接成test
以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。