ICSがコンパイルできませんw(その1)

CMやAOKPが流行ってるので、ここは一発、CodeAuroraで行ってみようかと(謎)思って
ics_chocolateのソースをダウンロードしてコンパイルしてみたら、
これがなんとエラーの(変身忍者)嵐です。
AOSPの既知の問題のところ見たら、書いてありましたw

Build error with 4.0.x and earlier on Ubuntu 11.10.
Symptom: Building IceCreamSandwich 4.0.x (and older versions) on Ubuntu 11.10 and newer fails with errors similar to this: :0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]

Cause: Ubuntu 11.10 uses a version of gcc where that symbol is defined by default, and Android also defines that symbol, which causes a conflict.

Fix: Either downgrade to Ubuntu 10.04, or use the master branch, which can be compiled on Ubuntu 11.10 and newer.

なるほど。ubuntuをダウングレードするか、masterなbranchを取ってこいと…
んじゃ、週末に向けて環境新しいの作るか!とか思ってたら、
つよさんから耳寄り情報を入手しました。

まず、gccのバージョン違いによるシンボルのコンフリクトと書いてあるので、
ダウングレード すればよいと。
ここで言うのは、HOST(x86)のgccのことですw
私は、微妙にubuntu 11.10を使っておりまして、gccのバージョンが4.6.1となっとります。
これを、ダウングレードして4.5にします。

$ sudo apt-get install gcc-4.5
$ sudo apt-get install cpp-4.5

ま、gcc入れたらcppも入ると思いますが…(cppはC言語のプロプロセッサのことです。一応w)
これで/usr/bin/gcc-4.6と?/usr/bin/gcc-4.5が存在していると思われますが
gccとすると、どっちが動くんだ!
/usr/bin/gccはリンクになっていると思われ、見るの忘れたけど後勝ちで4.5になってる?

というわけで、この2種類を使い分けるために、update-alternativesコマンド使います。

$ update-alternatives --config gcc
update-alternatives: エラー: gcc の alternatives がありません。

え?

$ update-alternatives --display gcc
update-alternatives: エラー: gcc の alternatives がありません。

ないのかよ…orz
なので、登録しますw

$ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 45
update-alternatives: /usr/bin/gcc (gcc) を提供するために 自動モード で /usr/bin/gcc-4.5 を使います。
update-alternatives: エラー: /etc/alternatives/gcc.dpkg-tmp から /usr/bin/gcc-4.5 へのシンボリックリンクを作成できません: 許可がありません

権限ないのかよ…orz
気を取り直して

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 45
update-alternatives: /usr/bin/gcc (gcc) を提供するために 自動モード で /usr/bin/gcc-4.5 を使います。
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 46
update-alternatives: /usr/bin/gcc (gcc) を提供するために 自動モード で /usr/bin/gcc-4.6 を使います。
$ sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.5 45
update-alternatives: /usr/bin/cpp (cpp) を提供するために 自動モード で /usr/bin/cpp-4.5 を使います。
$ sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.6 46
update-alternatives: /usr/bin/cpp (cpp) を提供するために 自動モード で /usr/bin/cpp-4.6 を使います。

で、確認して

$ sudo update-alternatives --config gcc
alternative gcc (/usr/bin/gcc を提供) には 2 個の選択肢があります。

選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/bin/gcc-4.6 46 自動モード
1 /usr/bin/gcc-4.5 45 手動モード
2 /usr/bin/gcc-4.6 46 手動モード

現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:

これで切り替えができるよねw

「ICSがコンパイルできませんw(その1)」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です