Add support for cross compiling on Windows for Android
#24.700 aperta il 21 giu 2024
Metriche repository
- Star
- (30.157 star)
- Metriche merge PR
- (Nessuna PR mergiata in 30 g)
Descrizione
I am trying to build the static library for the android-arm platform from my windows 11 pc.
I have set the respective environment variables in windows from the NOTE-Android.md:-
ANDROID_NDK_ROOT=C:\Users\51010384\AppData\Local\Android\Sdk\ndk\27.0.11902837 PATH=%ANDROID_NDK_ROOT%\toolchains\llvm\prebuilt\windows-x86_64\bin
Using OpenSSL -> 3.3.1
I have ran the below command and came into issue:
`
perl Configure android-arm -static --predix=D:\OpenSSL_Android --openssldir=D:\OpenSSL_Android Configuring OpenSSL version 3.3.1 for target android-arm Using os-specific seed configuration Failure! build file wasn't produced. Please read INSTALL.md and associated NOTES-* files. You may also have to look over your available compiler tool chain or change your configuration. no NDK arm-linux-androideabi-gcc on $PATH at (eval 12) line 143.`
I have done research on this issue before and found few of this as active issue, some are suggesting to use the linux but my project is built on windows and I require this library to work in android. I am using Microsoft visual studio 2022, using developer powershell by microsoft visual studio and running code in win32, but I need my current project in android application so I have to have a static file.
I have tried using wsl, but it is giving error
`
armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-app_libctx.o apps/lib/app_libctx.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-app_params.o apps/lib/app_params.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-app_provider.o apps/lib/app_provider.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-app_rand.o apps/lib/app_rand.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-app_x509.o apps/lib/app_x509.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-apps.o apps/lib/apps.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-apps_opt_printf.o apps/lib/apps_opt_printf.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-apps_ui.o apps/lib/apps_ui.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-columns.o apps/lib/columns.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-engine.o apps/lib/engine.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-engine_loader.o apps/lib/engine_loader.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-fmt.o apps/lib/fmt.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-http_server.o apps/lib/http_server.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-log.o apps/lib/log.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-names.o apps/lib/names.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-opt.o apps/lib/opt.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-s_cb.o apps/lib/s_cb.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-s_socket.o apps/lib/s_socket.c armv7a-linux-androideabi34-clang -I. -Iinclude -Iapps/include -pthread -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSLDIR=""/mnt/d/OpenSSL_Android"" -DENGINESDIR=""/mnt/d/OpenSSL_Android/lib/engines-3"" -DMODULESDIR=""/mnt/d/OpenSSL_Android/lib/ossl-modules"" -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o apps/lib/libapps-lib-tlssrp_depr.o apps/lib/tlssrp_depr.c rm -f apps/libapps.a llvm-ar rs apps/libapps.a apps/lib/libapps-lib-app_libctx.o apps/lib/libapps-lib-app_params.o apps/lib/libapps-lib-app_provider.o apps/lib/libapps-lib-app_rand.o apps/lib/libapps-lib-app_x509.o apps/lib/libapps-lib-apps.o apps/lib/libapps-lib-apps_opt_printf.o apps/lib/libapps-lib-apps_ui.o apps/lib/libapps-lib-columns.o apps/lib/libapps-lib-engine.o apps/lib/libapps-lib-engine_loader.o apps/lib/libapps-lib-fmt.o apps/lib/libapps-lib-http_server.o apps/lib/libapps-lib-log.o apps/lib/libapps-lib-names.o apps/lib/libapps-lib-opt.o apps/lib/libapps-lib-s_cb.o apps/lib/libapps-lib-s_socket.o apps/lib/libapps-lib-tlssrp_depr.o make[1]: llvm-ar: No such file or directory make[1]: *** [Makefile:3285: apps/libapps.a] Error 127 make[1]: Leaving directory '/mnt/c/Users/user/Downloads/openssl-openssl-3.3.1/openssl-openssl-3.3.1' make: *** [Makefile:1668: build_sw] Error 2`
below is the configdata.pm --dump when using wsl:
Command line (with current working directory = .):
/usr/bin/perl ./Configure CC=clang android-arm no-dso no-engine -static --prefix=/mnt/d/OpenSSL_Android --openssldir=/mnt/d/OpenSSL_Android
Perl information:
/usr/bin/perl
5.34.0 for x86_64-linux-gnu-thread-multi
Enabled features:
apps
argon2
aria
asm
async
atexit
autoalginit
autoerrinit
autoload-config
bf
blake2
bulk
cached-fetch
camellia
cast
chacha
cmac
cmp
cms
comp
ct
deprecated
des
dgram
dh
docs
dsa
dtls
ec
ec2m
ecdh
ecdsa
ecx
err
filenames
gost
http
idea
legacy
md4
mdc2
multiblock
nextprotoneg
ocb
ocsp
pinshared
poly1305
posix-io
psk
quic
unstable-qlog
rc2
rc4
rdrand
rfc3779
rmd160
scrypt
secure-memory
seed
siphash
siv
sm2
sm2-precomp
sm3
sm4
sock
srp
srtp
sse2
ssl
ssl-trace
static-engine
stdio
tests
tls
ts
ui-console
whirlpool
tls1
tls1-method
tls1_1
tls1_1-method
tls1_2
tls1_2-method
tls1_3
dtls1
dtls1-method
dtls1_2
dtls1_2-method
Disabled features:
acvp-tests [cascade] OPENSSL_NO_ACVP_TESTS
afalgeng [cascade] OPENSSL_NO_AFALGENG
asan [default] OPENSSL_NO_ASAN
brotli [default] OPENSSL_NO_BROTLI
brotli-dynamic [default] OPENSSL_NO_BROTLI_DYNAMIC
buildtest-c++ [default]
capieng [cascade] OPENSSL_NO_CAPIENG
winstore [not-windows] OPENSSL_NO_WINSTORE
crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG
default-thread-pool [cascade] OPENSSL_NO_DEFAULT_THREAD_POOL
devcryptoeng [default] OPENSSL_NO_DEVCRYPTOENG
dso [option] OPENSSL_NO_DSO
dynamic-engine [cascade]
ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128
egd [default] OPENSSL_NO_EGD
engine [option] OPENSSL_NO_ENGINE (skip engines, crypto/engine)
external-tests [default] OPENSSL_NO_EXTERNAL_TESTS
fips [default]
fips-securitychecks [cascade] OPENSSL_NO_FIPS_SECURITYCHECKS
fuzz-afl [default] OPENSSL_NO_FUZZ_AFL
fuzz-libfuzzer [default] OPENSSL_NO_FUZZ_LIBFUZZER
ktls [default] OPENSSL_NO_KTLS
loadereng [cascade] OPENSSL_NO_LOADERENG
makedepend [unavailable]
md2 [default] OPENSSL_NO_MD2 (skip crypto/md2)
module [cascade]
msan [default] OPENSSL_NO_MSAN
padlockeng [cascade] OPENSSL_NO_PADLOCKENG
pic [static]
rc5 [default] OPENSSL_NO_RC5 (skip crypto/rc5)
sctp [default] OPENSSL_NO_SCTP
shared [cascade]
tfo [default] OPENSSL_NO_TFO
thread-pool [cascade] OPENSSL_NO_THREAD_POOL
threads [static]
trace [default] OPENSSL_NO_TRACE
ubsan [default] OPENSSL_NO_UBSAN
unit-test [default] OPENSSL_NO_UNIT_TEST
uplink [no uplink_arch] OPENSSL_NO_UPLINK
weak-ssl-ciphers [default] OPENSSL_NO_WEAK_SSL_CIPHERS
zlib [default] OPENSSL_NO_ZLIB
zlib-dynamic [default] OPENSSL_NO_ZLIB_DYNAMIC
zstd [default] OPENSSL_NO_ZSTD
zstd-dynamic [default] OPENSSL_NO_ZSTD_DYNAMIC
ssl3 [default] OPENSSL_NO_SSL3
ssl3-method [default] OPENSSL_NO_SSL3_METHOD
Config target attributes:
AR => "ar",
ARFLAGS => "qc",
CC => "gcc",
CFLAGS => "-Wall -O3",
CXX => "g++",
CXXFLAGS => "-Wall -O3",
HASHBANGPERL => "/usr/bin/env perl",
RANLIB => "ranlib",
RC => "windres",
asm_arch => "armv4",
bin_cflags => "-fPIE",
bin_lflags => "-pie",
bn_ops => "BN_LLONG RC4_CHAR",
build_file => "Makefile",
build_scheme => [ "unified", "unix" ],
cflags => "-pthread",
cppflags => "",
cxxflags => "-std=c++11 -pthread",
defines => [ "OPENSSL_BUILDING_OPENSSL" ],
disable => [ ],
dso_ldflags => "-Wl,-z,defs",
dso_scheme => "dlfcn",
enable => [ ],
ex_libs => "-ldl -pthread",
includes => [ ],
lflags => "",
lib_cflags => "",
lib_cppflags => "-DOPENSSL_USE_NODELETE",
lib_defines => [ ],
module_cflags => "",
module_cppflags => "",
module_cxxflags => "",
module_defines => "",
module_includes => "",
module_ldflags => "-shared -Wl,-Bsymbolic",
module_lflags => "",
perl_platform => "Unix",
perlasm_scheme => "void",
shared_cflag => "",
shared_cppflag => "",
shared_cxxflag => "",
shared_defflag => "-Wl,--version-script=",
shared_defines => "",
shared_extension => ".so",
shared_includes => "",
shared_ldflag => "-shared -Wl,-Bsymbolic",
shared_rcflag => "",
shared_sonameflag => "-Wl,-soname=",
shared_target => "linux-shared",
thread_defines => [ ],
thread_scheme => "pthreads",
unistd => "<unistd.h>",
Recorded environment:
AR =
BUILDFILE =
CC =
CFLAGS =
CPPFLAGS =
CROSS_COMPILE =
CXX =
CXXFLAGS =
HASHBANGPERL =
LDFLAGS =
LDLIBS =
OPENSSL_LOCAL_CONFIG_DIR =
PERL =
RANLIB =
RC =
RCFLAGS =
WINDRES =
__CNF_CFLAGS =
__CNF_CPPDEFINES =
__CNF_CPPFLAGS =
__CNF_CPPINCLUDES =
__CNF_CXXFLAGS =
__CNF_LDFLAGS =
__CNF_LDLIBS =
Makevars:
AR = llvm-ar
ARFLAGS = rs
ASFLAGS =
CC = armv7a-linux-androideabi34-clang
CFLAGS = -Wall -O3
CPPDEFINES =
CPPFLAGS =
CPPINCLUDES =
CXX = g++
CXXFLAGS = -Wall -O3
HASHBANGPERL = /usr/bin/env perl
LDFLAGS = -static
LDLIBS =
PERL = /usr/bin/perl
RANLIB = :
RC = windres
RCFLAGS =
NOTE: These variables only represent the configuration view. The build file template may have processed these variables further, please have a look at the build file for more exact data: Makefile
build file:
Makefile
build file templates:
Configurations/common0.tmpl
Configurations/unix-Makefile.tmpl
Can you please share any resource or something else I could you to fix this error and can run the same using windows machine for get static archive of android-arm.