C4droid is the most powerful C/C++ IDE + C/C++ compiler for Android.
Offline C/C++ compiler: create your own applications on Android device and run them even without Internet access
Qt, SDL, SDL2, Allegro, SFML, FLTK and NativeActivity support for graphics
Export & share your programs as APK or binaries
Debugger with breakpoints and watches
CMake and Makefile support: use the same build scripts as on your PC (BusyBox is included)
Source code editor with syntax highlighting, tabs, code completion, code formatting, file association and undo/redo
No root required (but C4droid can use it for your programs if you want)
Full ANSI C and ISO C99 support with TCC (Tiny C Compiler) + musl libc
Fully-functional C++ compiler, complete C++11 support with GCC
Customizable GUI, choose where to place tabs and buttons by yourself, themes are also supported
Semi-automatic open-source library porting feature for enhanced programming & education
C4droid is designed to be user-friendy out-of-the-box, but nothing is perfect, so here are some answers for questions that can appear:
How to use Makefiles, multifile projects, etc
Long-click compile button (or select "compilation settings" if buttons are hidden/moved) and configure current directory to use the mode you want.
Note that C4droid will create .c4droid configuration file when you press Ok. Some modes (like makefile) require to enter result executable file name, don't forget to do that.
After doing that all use compile and run buttons to build and run your app as regular.
How to use graphics libraries in single-file mode
Just install SDL plugin and select G++ compiler in C4droid preferences.
Note that C4droid chooses app mode using a very simple source code analysis:
every graphics mode is detected with corresponding include string (e.g. SDL is detected with #include "SDL.h", check bundled examples for more info). Commenting out these lines will not have any effect.
If you are compiling a single-file Qt app, you should also add #include "yoursourcefilenamewithcpp.moc" to the end of source code file also.
How to install C++ support manually
C4droid will ask you to install C++ support at first startup and will configure itself in semi-automatic mode.
If you want to do that manually, you need:
0) Enough (100MB) internal memory OR root rights
1) Install GCC plugin
2) Select G++ compiler in C4droid preferences
Note that if you want to use C4droid as a C compiler, it is better to select GCC, not G++.
How to build and install libraries
Almost the same way as regular Makefile building except for that most probably some patching may be required.
Currently tested libraries are gmp(internal memory only),mpfr,mpc,libxml2,neon,sqlite,SDL_gfx(--disable-mmx required).
Which gestures/keyboard shortcuts does