2012-08-13 47 views
6

Android-NDK提供了自己的編譯器來構建本機代碼。我目前使用的android-NDK安裝版本是arm-linux-androideabi-g++ (GCC) 4.6.x-google 20120106 (prerelease),我想這是GCC 4.6的一個分支。在Android NDK中使用vanilla GCC(或Clang)

它和普通(香草)GCC 4.6有什麼區別?它是否爲ARM平臺生成更好的代碼?

我想使用其他編譯器爲android構建軟件,比如vanilla GCC 4.7或Clang,因爲它們更好地支持C++ 11並實現了一些我努力使用的功能(比如模板別名)。

  1. 是否有可能使用最新的vanilla GCC或Clang構建Android本機代碼?我應該使用什麼參數?

  2. 使用與android-SDK不同的編譯器的缺點是什麼?

+0

GCC 4.7太年輕 - 至於寫這個,它已經一個月大了。等待。 :) – 2012-08-13 07:44:35

回答

2

Android GCC是爲Android定製的,因爲GCC中的所有功能都不受原生Android支持。我不認爲有這種可能性,你可以在android ndk谷歌組中發表相同的答案,Google Android Developers將回答你的答案。

他們建議我們可以使用交叉編譯器來編譯android代碼,並使用android ndk。

+0

一個建議,但不是高優先級:端口LLVM的libC++到Android NDK(和平臺)[http://code.google.com/p/android/issues/detail?id=36496](http:/ /code.google.com/p/android/issues/detail?id=36496) – douyw 2012-10-23 16:08:52

2

只是單挑:google在Android NDK的修訂版8c中添加了clang3.1。它現在處於「實驗」階段,但很容易嘗試(並且在不久的將來可能會得到更好的支持,希望通過適當的libC++端口也可以)。