Compiling native programs for Android
There is an excellent tutorial by Nirnimesh on how to compile native programs for Android here http://android-tricks.blogspot.com/2009/02/hello-world-c-program-on-using-android.html
Unfortunately things have changed a bit since last year when this post was written. Andy’s agcc script doesn’t work with the most recent Google NDK release 4B.
I have changed the script a little bit to address new path changes. The new script is available here http://android-cruft.googlecode.com/files/agcc-0.2.tgz.
Make sure to add this to your path
$HOME/AndroidNDK/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/
where AndroidNDK is your NDK installation directory.
Hope this works for you.

Aleix Said,
August 23, 2010 @ 9:23 pm
Thanks!
vlad Said,
August 23, 2010 @ 9:28 pm
No problemo.
Actually, we have set-up a Google Code project with Jason Holt, check it out at http://code.google.com/p/android-cruft/.
That’ is going to be a new home for the script and related hacks.
amal Said,
September 6, 2010 @ 9:38 am
I cross compiled the latest NDK and trying to build a c++ program.
I have modified your agcc script accordingly, but get linker errors.
In function `main’:
helloworld.cpp:(.text.main+0×38): undefined reference to `std::basic_ostream<char, std::char_traits >& std::operator<< <std::char_traits >(std::basic_ostream<char, std::char_traits >&, char const*)’
helloworld.cpp:(.text.main+0×50): undefined reference to `std::basic_ostream<char, std::char_traits >::operator<<(std::basic_ostream<char, std::char_traits >& (*)(std::basic_ostream<char, std::char_traits >&))’
helloworld.cpp:(.text.main+0×68): undefined reference to `std::cout’
helloworld.cpp:(.text.main+0×70): undefined reference to `std::basic_ostream<char, std::char_traits >& std::endl<char, std::char_traits >(std::basic_ostream<char, std::char_traits >&)’
/tmp/ccibnqFX.o: In function `__static_initialization_and_destruction_0(int, int)’:
helloworld.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x5c): undefined reference to `std::ios_base::Init::Init()’
/tmp/ccibnqFX.o: In function `__tcf_0′:
helloworld.cpp:(.text.__tcf_0+0×28): undefined reference to `std::ios_base::Init::~Init()’
collect2: ld returned 1 exit status
Request help
vlad Said,
September 6, 2010 @ 9:45 am
Looks, like you forgot to attach C++ library. I am not sure if Android actually has one. I’ll try to look into it later this week.
Radu Said,
November 18, 2010 @ 3:00 am
Hi Vlad, excellent work! I;ve used the agcc (the old version) myself alot.
However, this version requires PERL.
I’ve created a script, for those that don’t want to install Perl, so here is another approach on using the Android NDK to compile Native C applications:
http://www.pocketmagic.net/?p=1462