linux下重新安装特定版本的gcc

背景:

       最近在捣鼓IOS覆盖率的时候,由于需要在Linux下实现将.gcno文件和.gcda文件合并生成覆盖率文件,但是直接使用lcov生成的时候,报错了,错误如下:

经查询是xcode编译的时候,使用的是gcov4.2.1的,但是Linux服务器上的gcc、gcov是4.4版本的,由于版本不匹配造成的报错,于是需要将Linux服务器上的gcc版本降低到4.2.1(备注:gcov是随gcc一起安装的)。

可以看到本机安装的gcc和gcov是4.4.7版本的。

安装过程:

1、下载GCC

从镜像下载对应版本的gcc压缩包  http://mirror.hust.edu.cn/gnu/gcc/,下载完成后,解压:

tar -zxvf gcc-4.2.1.tar.gz

2、新建一个编译后输出的目录

通常建议新建一个目录用于存放编译后输出的文件,本人一开始是直接在源码下直接编译的,出了一些问题,因此强烈建议重新建一个目录。

mkdir gcc-build-4.2.1

3、生成makefile文件

在源码解压后的目录中,有个configure可执行文件。进入输出目录,并执行命令,生成Makefile文件。

cd  gcc-build-4.2.1

../gcc-4.2.1/configure  --prefix=/usr/bin/gcc-4.2.1 --enable-language=c,c++,java,objc  --disable-multilib

(其中/usr/bin/gcc-4.2.1是GCC要安装的目录,--enable-language=c,c++,java,objc是设置安装可编译的语言,multilib一定要禁用,否则可能出现一些其他问题)

执行以上命令后,可以看到在gcc-build-4.2.1目录下会有个Makefile文件。

4、编译

在该目录(gcc-build-4.2.1)下执行编译。

make

该过程会比较慢,耐心等待~~。也可能会遇到一些问题,大部分都是因此缺少依赖库造成的,每个人可能遇到的都不同,遇到问题直接百度就行。

由于自己一开始是在源码下直接编译的,因此过程中遇到了一些问题,以下是本人在源码下直接make的时候遇到的问题,在此记录下来,仅供参考。(因此强烈建议自己新建一个编译后的文件,以免发生一些不必要的问题)。

问题(1):

java/parse-scan.c:没有那个文件或目录。

原因:缺少bison,因此需要安装bison。附bison下载地址:http://ftp.gnu.org/gnu/bison/

过程如下:

tar -xvf bison-3.0.tar.gz

cd bison-3.0

./configure

make && make install

安装完后,检查下是否安装成功。

表明已经成功安装。

问题(2):

解决完上述问题之后,继续进行make ,但是又遇到了如下问题。

查了半天没有啥叫进展,看到有文章说最好不要在源码下直接编译,于是新建一个gcc-build文件在这里进行编译。

问题(3):

进入上述新建的目录进行make,依然遇到了问题。如下:

经查询该问题是由于,一开始在源码下编译,然后又换到其他目录进行编译造成的。

于是按照他说的,删除之前下载gcc压缩包解压后的文件,重新解压,并且删除了/usr/bin/gcc-4.2.1文件,并进入gcc-build-4.2.1中重新从头进行安装编译。

然后从头进行重新make,然后就再也没有遇到其他问题了,不过这个编译的过程持续了大概1个小时左右,比较漫长,耐心等待。

5、安装

make install

依然顺利,没出问题。

6、建立新版本的链接

由于系统中原来安装的是gcc 4.4.7版本,因此安装了4.2.1之后,需要删除原来的链接,重新建立新链接,操作如下:

rm   /usr/bin/gcc

ln  -s  /usr/bin/gcc-4.2.1/bin/gcc   /usr/bin/gcc

7、检查新版本

gcc -v

至此特定版本的gcc已经安装成功了。

但是此时gcov版本依然还是4.4.7版本的,同样的操作即可:

(1)删除原有的/usr/bin/gcov

(2)将/usr/bin/gcc-4.2.1/bin/gcov  复制到/usr/bin/下即可。

查看gcov版本:变成了期望的4.2.1。

后续:

由于我安装gcc和gcov是为了解决IOS代码覆盖率生成问题,因此,安装完之后重新尝试生成覆盖率文件。这次终于不报404,402R那个错误了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容