请教MTK编译ubuntu12.04 下gcc如何使用4.4.7版本
Mtk在检测gcc的时候会存在不兼容的情况,导致无法检测到gcc,出现gcc unkown错误。gcc nv检测的时候 做了以下操作(具体代码位置参见:mediatek/build/tools/checkEnv.py 函数GccCheck。):
首先在脚本中执行了gcc --v 命令,然后在返回的信息中通过匹配”.*gcc\s*version\s*”格式查找gcc的版本。由于我们当前的版本是4.6.1 不支持gcc --v, 仅支持gcc -v,而中文语言环境下返回的版本信息中”version”用了中文字符”版本”,会导致匹配不成功。因此需要做以下修改:
1.降低gcc版本
ubuntu 11.10的gcc版本是4.6.1,把gcc版本改为4.4.3。
ubuntu 32bit系统下安装gcc 4.4:
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
装完后在/usr/bin目录下
$ ls -l gcc*
lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6
发现gcc 链接到gcc-4.6, 需要将它改为链接到gcc-4.4 :
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
同理
ls -l g++*
lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6
需要将g++链接改为g++-4.4:
/usr/bin$ sudo mv g++ g++.bak
/usr/bin$sudo ln -s g++-4.4 g++
再查看gcc和g++版本号:
gcc -v
g++ -v
均显示gcc version 4.4.6 ,说明gcc 4.4安装成功。
在ubuntu12.04上可以用gcc4.4.7的,但是由于mtk的环境检测脚本读取该版本时,不能正确解析,所以导致后面的编译不能进行,我是直接在mtk的makeMtk脚本中把环境工具检测这个函数给屏蔽掉了(# &chkMustEnv;),也能编过和运行,暂时不知道会不会有什么隐患没有了,我没有用12.04发过版本。我现在早12.10上编15,75,77都没有什么问题,也都能正常跑。
非常感谢你的回复,可是没有给出解决方法
但是你的方法在12.04上无法使用,你说的方式 我知道,但在12.04上 用用样的方式 gcc或g++最终都是以gcc4.4.7的版本运行,没有4.4.3的 所以才会出现我上面的提问,但非常感谢谢谢!
谢谢 ! 你的方式可以参考 我灯会就去试试
负责任的告诉你,我就是这样搞的,验证过的,目前使用完全没有问题。
我用的也是12.04
在/etc/apt/sources.list加下面的源
deb http://cz.archive.ubuntu.com/ubuntu jaunty main
然后sudo apt-get update
sudo apt-get install gcc-4.4
试试看
非常感谢大家的帮助,针对12.04 ubuntu 版本下安装75编译环境遇到的gcc 编译器unknow 问题,主要原因的不要使用中文版本安装,否则在运行MTK环境检测时出现版本检测错误的现象,导致4.4.x版本无法识别而编译报错,改为英文版本就好了!
那还是有可能的,可能mtk当时写脚本的时候没有考虑到这个情况。
