Open tGrothmannFluffy opened 3 months ago
Can you please try to use feature target_host
Autotools are not very great for cross compilation so I normally prefer to build with docker image or via cross
Android documentation has information on autotools but I'm not sure how reliable it is https://developer.android.com/ndk/guides/other_build_systems#autoconf
👍 I'm getting compiler errors now:
Building armeabi-v7a (armv7-linux-androideabi)
Compiling mp3lame-sys v0.1.4 (https://github.com/DoumanAsh/mp3lame-sys#50a8b6ec)
error: failed to run custom build command for `mp3lame-sys v0.1.4 (https://github.com/DoumanAsh/mp3lame-sys#50a8b6ec)`
Caused by:
process didn't exit successfully: `/Users/username/projects/Project/native/target/debug/build/mp3lame-sys-6cd96d85f1ad3d85/build-script-build` (exit status: 101)
--- stdout
running: cd "/Users/username/projects/Project/native/target/armv7-linux-androideabi/debug/build/mp3lame-sys-49833ea537096797/out/build" && MAKEFLAGS="-j --jobserver-fds=7,8 --jobserver-auth=7,8" "sh" "-c" "exec \"$0\" \"$@\"" "make" "install" "-j8"
Making install in mpglib
/bin/sh ../libtool --tag=CC --mode=compile /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT common.lo -MD -MP -MF .deps/common.Tpo -c -o common.lo /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/common.c
/bin/sh ../libtool --tag=CC --mode=compile /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT interface.lo -MD -MP -MF .deps/interface.Tpo -c -o interface.lo /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/interface.c
/bin/sh ../libtool --tag=CC --mode=compile /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT layer1.lo -MD -MP -MF .deps/layer1.Tpo -c -o layer1.lo /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer1.c
/bin/sh ../libtool --tag=CC --mode=compile /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT layer2.lo -MD -MP -MF .deps/layer2.Tpo -c -o layer2.lo /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer2.c
libtool: compile: /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT common.lo -MD -MP -MF .deps/common.Tpo -c /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/common.c -fPIC -DPIC -o common.o
libtool: compile: /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT interface.lo -MD -MP -MF .deps/interface.Tpo -c /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/interface.c -fPIC -DPIC -o interface.o
libtool: compile: /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT layer1.lo -MD -MP -MF .deps/layer1.Tpo -c /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer1.c -fPIC -DPIC -o layer1.o
libtool: compile: /Users/username/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -DHAVE_CONFIG_H -I. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I.. -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/include -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib -I/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame -I.. -O3 -Wall -pipe -O0 -DANDROID -ffunction-sections -fdata-sections -fPIC -gdwarf-2 -fno-omit-frame-pointer --target=armv7-linux-androideabi --target=armv7a-linux-androideabi21 -fno-common -MT layer2.lo -MD -MP -MF .deps/layer2.Tpo -c /Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer2.c -fPIC -DPIC -o layer2.o
--- stderr
make: warning: -jN forced in submake: disabling jobserver mode.
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/interface.c:60:9: error: call to undeclared library function 'memset' with type 'void *(void *, int, unsigned int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
memset(mp, 0, sizeof(MPSTR));
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/interface.c:60:9: note: include the header <string.h> or explicitly provide a declaration for 'memset'
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer1.c:65:5: error: call to undeclared library function 'memset' with type 'void *(void *, int, unsigned int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
memset(si, 0, sizeof(*si));
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer1.c:65:5: note: include the header <string.h> or explicitly provide a declaration for 'memset'
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/interface.c:125:5: error: call to undeclared function 'bcopy'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
memcpy(nbuf->pnt, buf, (size_t) size);
^
/Users/v/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame/machine.h:40:27: note: expanded from macro 'memcpy'
# define memcpy(d, s, n) bcopy ((s), (d), (n))
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/interface.c:221:9: error: call to undeclared function 'bcopy'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
memcpy(ptr + len, mp->tail->pnt + mp->tail->pos, (size_t) nlen);
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/libmp3lame/machine.h:40:27: note: expanded from macro 'memcpy'
# define memcpy(d, s, n) bcopy ((s), (d), (n))
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/common.c:361:9: error: call to undeclared function 'bcopy'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
memcpy(mp->wordpointer, bsbufold + mp->fsizeold - backstep, (size_t) backstep);
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/mpg123.h:35:27: note: expanded from macro 'memcpy'
# define memcpy(d, s, n) bcopy ((s), (d), (n))
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer2.c:140:5: error: call to undeclared library function 'memset' with type 'void *(void *, int, unsigned int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
memset(si, 0, sizeof(*si));
^
/Users/username/.cargo/git/checkouts/mp3lame-sys-1ad09e823b2eed99/50a8b6e/lame-3.100/mpglib/layer2.c:140:5: note: include the header <string.h> or explicitly provide a declaration for 'memset'
1 error generated.
1 error generated.
3 errors generated.
1 error generated.
make[1]: *** [common.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [layer2.lo] Error 1
make[1]: *** [layer1.lo] Error 1
make[1]: *** [interface.lo] Error 1
make: *** [install-recursive] Error 1
thread 'main' panicked at /Users/username/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autotools-0.2.7/src/lib.rs:790:5:
command did not execute successfully, got: exit status: 2
I think I may need to define STDC_HEADERS
to make it work
@tGrothmannFluffy can you show full build output from clean build?
Add verbose option as -vv
I made patch to try to work around android cross compilation Please try to test with it https://github.com/DoumanAsh/mp3lame-sys/pull/2
Hi there,
I'd love encode audio to mp3 in an android app using the flutter rust bridge. I can build locally fine, but building for android results in: