Android Status
Ignacious via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Jan 10 10:48:17 PST 2017
Well, I posed a reply but I guess it didn't get though ;/
I'm only suing android-x86 because I thought it would be easier
to test/debug. My device is a cortex-arm7.
Two questions I have:
1. In the command lines present there is a lot of use of `x86`. I
used them to compile the hello world for my device and it worked
so I'm a bit confused. I realize there is the x86 binaries for
compiling and then the binaries that are compiled to but not sure
what is what.
2. I downloaded the native_app_glue.d and tried to compile it. It
imports jni.d which I found in hello-jni and I copied that to the
android folder and was able to compile it using effectively the
same command line I used to compile the working hello world code.
but when I try to then use it to compile the hello-jni sample I
get that it is an invalid format and many ELF relocation errors.
Could you send me your working native_app_glue.o(if for the
cortex-arm7 or try to compile it for both cortex-arm7 and
x86/x64) or explain to me what is the issue with linking it in
and how to fix it?
cmdline that compiles android_native_app_glue.d
bin/ldc2 -m32 -shared -Iandroid -c android_native_app_glue.d
(tried with -m64 and without either)
cmdline trying to compile hello-jni.
$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
-Wl,-soname,libhello-jni.so -shared
--sysroot=$NDK/platforms/android-9/arch-x86
../obj/local/x86/objs-debug/hello-jni/hello-jni.o
../android_native_app_glue.o -lgcc -gcc-toolchain
$NDK/toolchains/x86-4.8/prebuilt/linux-x86 -target
i686-none-linux-android -no-canonical-prefixes
-Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
-L$NDK/platforms/android-9/arch-x86/usr/lib -llog -landroid -lEGL
-lGLESv1_CM -llog -lc -lm -fuse-ld=bfd
-L../../../phobos/generated/linux/release/32 -l:libphobos2.a -o
../libs/libhello-jni.so
which gives the errors
....
/usr/bin/ld.bfd: ../android_native_app_glue.o: Relocations in
generic ELF (EM: 40)
/usr/bin/ld.bfd: ../android_native_app_glue.o: Relocations in
generic ELF (EM: 40)
/usr/bin/ld.bfd: ../android_native_app_glue.o: Relocations in
generic ELF (EM: 40)
../android_native_app_glue.o: error adding symbols: File in wrong
format
clang: error: linker command failed with exit code 1 (use -v to
see invocation)
It might be better to wait for you to finish your build setup
which might resolve all these problems and be more robust(I'd
like to be able to easily build for different platforms(for
testing on VM and device). But if all I need to do is get the
android_native_app_glue to work to run full fledged apps, then It
seems I'm close? (just need to compile it to the correct format?)
Thanks for all the help!
More information about the Digitalmars-d-learn
mailing list