Öncelikle Android'i ayrı tutmanı öneririm. Her ne kadar NDK C/C++ ile development'a izin verse bile (bkz:
http://developer.android.com/sdk/ndk/index.html) bence Android development'ını Java'dan yapmanda yarar var ve bunun için Eclipse'i tek geçerim. Eğer illa ki cross development'a Android'i de dahil etmek istiyorsan tüm platformları kapsayan hazır bir engine kullanmanı öneririm. Bu "android'de native uygulama geliştirilmez" demek değil, hatta native uygulamanın avantajları da var tabii ki, ancak birçok durumda sadece angarya oluyormuş okuduğum yorumlara göre. Ayrıca cross development açısından da o derece bir fayda sağlar mı emin olamadım. Android için C++ da kullansan birçok wrapper yazman gerekir bence.
Eclipse kesinlikle bu iş için genel anlamda uygun. Yani hem Windows/Linux/Mac OS üzerinde mevcut, hangi platformda olursan ol kullanabiliyorsun, hem de Java v.b. dilleri de desteklediği için Android için Java bile kullansan aynı IDE'yi kullanma şansın var.
Compiler olarak da gcc iş görecektir diye düşünüyorum. Gerçi şu ana kadar gcc'yi sadece Windows ve Linux üzerinde cross-development amaçlı şahsen test edebildim ancak Mac OS'da da sorun yaşamayacağını tahmin ediyorum. Bu konuda tecrübesi olanlar beni destekleyecek ya da alternatifler önereceklerdir zaten.