BUG: Cannot create shared object for Android x86_64

Jeffrey Walton <[email protected]>
Newsgroups gmane.comp.audio.mp3.lame
Message-ID <CAH8yC8kvAK1xB45FzmBVWUqe_aMCBr=8gQZw0+dAKvK9frZELw@mail.gmail.com>
When compiling and linking for Android x86_64, the linking of the
shared object libmp3lame.so.0.0.0 fails.

--sysroot was used to pass the header and library paths. --sysroot was
set in CPPFLAGS, CFLAGS and CXXFLAGS:

$ echo $CPPFLAGS
--sysroot=/opt/android-ndk-r10d/platforms/android-21/arch-x86_64
$ echo $CFLAGS
--sysroot=/opt/android-ndk-r10d/platforms/android-21/arch-x86_64
$ echo $CXXFLAGS
--sysroot=/opt/android-ndk-r10d/platforms/android-21/arch-x86_64

--sysroot was used during configuration and compilation, and all the
object files were created successfully.

--sysroot was not present when creating the shared object, and the
shared object creation failed.

The invocation below needs to include CFLAGS so --sysroot is available
to the compiler driver.

**********

$ echo $ANDROID_SYSROOT
/opt/android-ndk-r10d/platforms/android-21/arch-x86_64
$ ls $ANDROID_SYSROOT/usr/lib
crtbegin_dynamic.o    libGLESv3.so        liblog.so
crtbegin_so.o        libOpenMAXAL.so        libm.a
crtbegin_static.o    libOpenSLES.so        libm.so
crtend_android.o    libandroid.so        libmediandk.so
crtend_so.o        libc.a            libstdc++.a
libEGL.so        libc.so            libstdc++.so
libGLESv1_CM.so        libdl.so        libz.a
libGLESv2.so        libjnigraphics.so    libz.so

**********

libtool: link: x86_64-linux-android-gcc -shared  .libs/VbrTag.o
.libs/bitstream.o .libs/encoder.o .libs/fft.o .libs/gain_analysis.o
.libs/id3tag.o .libs/lame.o .libs/newmdct.o .libs/presets.o
.libs/psymodel.o .libs/quantize.o .libs/quantize_pvt.o
.libs/reservoir.o .libs/set_get.o .libs/tables.o .libs/takehiro.o
.libs/util.o .libs/vbrquantize.o .libs/version.o
.libs/mpglib_interface.o  -Wl,--whole-archive
../libmp3lame/vector/.libs/liblamevectorroutines.a
../mpglib/.libs/libmpgdecoder.a -Wl,--no-whole-archive  -lm
-Wl,-soname -Wl,libmp3lame.so.0 -o .libs/libmp3lame.so.0.0.0

/opt/android-ndk-r10d/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/bin/ld:
error: cannot open crtbegin_so.o: No such file or directory
/opt/android-ndk-r10d/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/bin/ld:
error: cannot open crtend_so.o: No such file or directory
/opt/android-ndk-r10d/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/bin/ld:
error: cannot find -lm
/opt/android-ndk-r10d/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/bin/ld:
error: cannot find -lc
/opt/android-ndk-r10d/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/bin/ld:
error: cannot find -ldl
collect2: error: ld returned 1 exit status
make[3]: *** [libmp3lame.la] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet

_______________________________________________
Lame-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lame-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.