2012-08-13 15 views
6

Android-NDK wysyła własny kompilator do budowania natywnego kodu. Wersja dostarczana z moją obecną instalacją Android-NDK to arm-linux-androideabi-g++ (GCC) 4.6.x-google 20120106 (prerelease), domyślam się, że to widelec GCC 4.6.Używanie wanilii GCC (lub Clang) z Androidem NDK

Jakie są różnice między nim a zwykłym (waniliowym) GCC 4.6? Czy zapewnia lepszy kod dla platform ARM?

Chciałbym użyć innych kompilatorów do budowania oprogramowania dla Androida, takich jak waniliowe GCC 4.7 lub Clang, ponieważ mają one lepszą obsługę C++ 11 i implementują pewne funkcje, z którymi zmagam się (takie jak aliasy szablonów).

  1. Czy to możliwe, aby korzystać z najnowszych GCC wanilii lub dzyń, aby zbudować kod natywny dla systemu Android? Jakie parametry powinienem użyć?

  2. Jakie są wady używania kompilatora innego niż dostarczony z Android-SDK?

+0

GCC 4.7 jest za młody - od chwili napisania tego, ma jeden miesiąc. Czekać. :) –

Odpowiedz

2

Android GCC jest dostosowany do Androida, ponieważ wszystkie funkcje GCC nie są obsługiwane przez natywny Android. Nie sądzę, że jest taka możliwość, możesz zamieścić to samo w androidowych grupach ndk google, gdzie odpowiedzi będą odpowiadać przez programistów Google Android.

Sugerowali oni, że możemy skorzystać z kompilatorów krzyżowych do kompilacji kodu android bez użycia androida ndk.

+0

Propozycja, ale nie o wysokim priorytecie: libC++ Port LLV ++ do Android NDK (i platformy) [http://code.google.com/p/android/issues/detail?id=36496](http:/ /code.google.com/p/android/issues/detail?id=36496) – douyw

2

Po prostu heads-up: google dodał clang3.1 w wersji 8c Androida NDK. Jest na etapie "eksperymentalnym", ale łatwe do wypróbowania (i prawdopodobnie będzie lepiej obsługiwane w najbliższej przyszłości, mam nadzieję, że z właściwym portem libC++).