Thank you, I did different approach. I followed from this stackoverflow thread about cross compiling [https://stackoverflow.com/questions/16795583/android-error-cannot-open-crtbegin-dynamic-o-no-such-file-or-directory](https://stackoverflow.com/questions/16795583/android-error-cannot-open-crtbegin-dynamic-o-no-such-file-or-directory)
I was stuck because I added `sysroot` option to the compiler when compiling C and after I looked your example, I realized I need to add `--compileOnly` to Nim compiler and do compiling as usual * * * For completeness, this is what I did > set PATH=%PATH%;/my-installed-ndk/toolchains/arm-linux-android-eabi-4.9/prebuilt/windows-x86_64/bin > nim --cpu:arm --os:android --compileOnly hello.nim > cd nimcache > arm-linux-androideabi-gcc.exe -I my-installed-nim-folder/lib hello.c stdlib_system.c -o hello --sysroot=my-installed-ndk/platforms/android-19/arch-arm > adb root # starting adb server, make sure adb.exe in PATH > adb push hello /data/local/tmp > adb shell $ su # cd /data/local/tmp # chmod 755 hello # ./hello cross compiled hello I cross-compiled from Windows 10 64 bit too and targeting android-19 (4.4)