linux編譯android時報gcc和g++錯誤問題
阿新 • • 發佈:2019-02-10
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-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 --v 命令,然後在返回的資訊中通過匹配”.*gcc\s*version\s*”格式查詢gcc的版本。由於我們當前的版本是4.6.1 不支援gcc --v, 僅支援gcc -v,而中文語言環境下返回的版本資訊中”version”用了中文字元”版本”,會導致匹配不成功。因此需要做以下修改:
1.降低gcc版本
ubuntu 11.10的gcc
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
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
gcc -v
g++ -v
均顯示gcc version 4.4.6 ,說明gcc 4.4安裝成功。
讀後感:
在linux下編譯android報如下錯誤 。找到上面的方法解決了。上文對gcc報錯原因進行了分析,這個態度值得學習。