rhardih / bad Goto Github PK
View Code? Open in Web Editor NEWA collection of docker files for cross compiling various native libraries
License: MIT License
A collection of docker files for cross compiling various native libraries
License: MIT License
Each library should have a single verifiable test unit, able to be run on a device without crashing.
TODO
This repo was a huge help because we needed vertical datum calculations from the proj library in our Android app.
I am having trouble building proj after version 5.2.0. The build scripts of those versions use sqlite3 to build proj.db. I modified proj.Dockerfile with the following in bold (after successive errors with pkg-config, then sqlite3 binaries, etc.), but it still can't find sqlite3.h even though it should be placed in /usr/include based on my manual tests in a working docker image for 5.2.0. Is there a way to append the include path in the docker build?
RUN apt-get update && apt-get -y install
wget \
pkg-config \
sqlite3 \
libsqlite3-0 \
libsqlite3-dev
I also tried adding this line to the Dockerfile but that caused a bunch of other errors:
ENV CPATH $CPATH:/usr/include
#9 14.95 libtool: compile: arm-linux-androideabi-g++ -DHAVE_CONFIG_H -I. -DPROJ_LIB="/proj-build/share/proj" -DMUTEX_pthread -I../include -Wall -Wextra -Winit-self -Wunused-parameter -Wformat -Werror=format-security -Wno-format-nonliteral -Wshorten-64-to-32 -Wshadow -Werror=vla -Wdate-time -Wnull-dereference -Wextra-semi -Wcomma -Wfloat-conversion -Wdocumentation -Wno-documentation-deprecated-sync -Wunused-private-field -Wmissing-prototypes -Wmissing-declarations -Wnon-virtual-dtor -Weffc++ -Woverloaded-virtual -Wweak-vtables -Wdeprecated -Wabstract-vbase-init -Winconsistent-missing-destructor-override -fno-operator-names -Wzero-as-null-pointer-constant -DPROJ_COMPILATION -g -O2 -fvisibility=hidden -MT gridinfo.lo -MD -MP -MF .deps/gridinfo.Tpo -c gridinfo.cpp -o gridinfo.o >/dev/null 2>&1
#9 15.40 iso19111/factory.cpp:66:10: fatal error: 'sqlite3.h' file not found
#9 15.40 #include <sqlite3.h>
#9 15.40 ^~~~~~~~~~~
How to solve the problem of having Dockerfiles for multiple versions of a library?
Hi @rhardih,
Firstly, I would like to thank you for your work on this project. It is helpful. I am trying to build leptonica, tiff & tesseract for my android OCR project for all android ABI's. It worked for armv7-a. But when I try to build for arm64-v8a
with
make tesseract-arm64-v8a/4.0.0
I got multiple errors. I am no expert in cross-compilation. I would be happy if you point me what wrong I am doing and put me in the right direction.
The error I am getting is,
.....
[ 97%] Building CXX object CMakeFiles/libtesseract.dir/src/api/renderer.cpp.o
[ 97%] Building CXX object CMakeFiles/libtesseract.dir/src/api/altorenderer.cpp.o
[ 98%] Building CXX object CMakeFiles/libtesseract.dir/src/api/hocrrenderer.cpp.o
[ 98%] Building CXX object CMakeFiles/libtesseract.dir/src/api/pdfrenderer.cpp.o
[ 99%] Linking CXX shared library libtesseract.so
[ 99%] Built target libtesseract
[ 99%] Built target libtesseract
Scanning dependencies of target tesseract
[ 99%] Building CXX object CMakeFiles/tesseract.dir/src/api/tesseractmain.cpp.o
[100%] Linking CXX executable bin/tesseract
/android-23-toolchain/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libtiff.so, needed by /leptonica-build/lib/liblept.so, not found (try using -rpath or -rpath-link)
/leptonica-build/lib/liblept.so: undefined reference to `TIFFWriteScanline'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFGetFieldDefaulted'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFSetDirectory'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFCleanup'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFScanlineSize'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFClose'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFGetField'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFOpen'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFClientOpen'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFSetField'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFPrintDirectory'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFSetSubDirectory'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFReadDirectory'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFSetWarningHandler'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFGetVersion'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFReadRGBAImageOriented'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFCurrentDirOffset'
/leptonica-build/lib/liblept.so: undefined reference to `TIFFReadScanline'
clang70++: error: linker command failed with exit code 1 (use -v to see invocation)
CMakeFiles/tesseract.dir/build.make:95: recipe for target 'bin/tesseract' failed
make[2]: *** [bin/tesseract] Error 1
make[1]: *** [CMakeFiles/tesseract.dir/all] Error 2
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/tesseract.dir/all' failed
make: *** [all] Error 2
Makefile:129: recipe for target 'all' failed
The command '/bin/sh -c make -j4' returned a non-zero code: 2
make: *** [tesseract-arm64-v8a/4.0.0] Error 2```
Initially https://github.com/benlau/qtci looks like the way to go.
Hi @rhardih,
I might need your help. I built the tesseract (libtesseract.so), leptonica (liblept.so) & tiff (libtiff.so) from the makefile. I tried in my sample app. As I got the tesseract version number (4.0.0), I think there is no problem in initialising the tesseract engine.
But when I try to recognise, I got this error thrown,
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xc
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: Cause: null pointer dereference
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x0 0000007a10b58400 x1 0000000000000001 x2 0000000000000000 x3 0000000000000000
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x4 0000007fead187d0 x5 0000000000000000 x6 0000000080000000 x7 6d7450ff63647260
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x8 0000000000000000 x9 0000000000000000 x10 0000000000000001 x11 0000000000000020
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x12 0000007a220ea330 x13 b760e692601a80b2 x14 0000000000000030 x15 aaaaaaaaaaaaaaab
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x16 0000007a108925b0 x17 0000007a1069accc x18 0000000000000044 x19 0000000000000000
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x20 0000007a33f9c1a0 x21 0000007a22158e40 x22 0000000000000000 x23 0000000000000000
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x24 0000000000000000 x25 0000000000000047 x26 0000007a221fe000 x27 0000007a2046f030
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: x28 0000007fead18b20 x29 0000007fead18940
2019-10-15 13:37:43.296 29748-29748/? A/DEBUG: sp 0000007fead18750 lr 0000007a105f8abc pc 0000007a105f8ad8
2019-10-15 13:37:43.468 29748-29748/? A/DEBUG: backtrace:
2019-10-15 13:37:43.468 29748-29748/? A/DEBUG: #00 pc 00000000000a2ad8 /data/app/com.example.sample_adaptech_tess4android-CyBezkRI0S-FOpfPG0w6CQ==/lib/arm64/libtesseract.so (tesseract::Tesseract::recog_all_words(PAGE_RES*, ETEXT_DESC*, TBOX const*, char const*, int)+184)
2019-10-15 13:37:43.468 29748-29748/? A/DEBUG: #01 pc 0000000000283840 /data/app/com.example.sample_adaptech_tess4android-CyBezkRI0S-FOpfPG0w6CQ==/lib/arm64/libtesseract.so (tesseract::TessBaseAPI::Recognize(ETEXT_DESC*)+1092)
2019-10-15 13:37:43.468 29748-29748/? A/DEBUG: #02 pc 00000000002821dc /data/app/com.example.sample_adaptech_tess4android-CyBezkRI0S-FOpfPG0w6CQ==/lib/arm64/libtesseract.so (tesseract::TessBaseAPI::GetUTF8Text()+48)
2019-10-15 13:37:43.468 29748-29748/? A/DEBUG: #03 pc 0000000000003538 /data/app/com.example.sample_adaptech_tess4android-CyBezkRI0S-FOpfPG0w6CQ==/lib/arm64/libwhat3words-ocr-jni.so (Java_com_what3words_java_1wrapper_OCREngineImp_nativeReadBitmap+612)
2019-10-15 13:37:43.468 29748-29748/? A/DEBUG: #04 pc 0000000000577fe0 /system/lib64/libart.so (art_quick_generic_jni_trampoline+144)```
@rhardih, is there anything I missed from the build, please? Also, i using tesseract 4.0.0 with 1.74.4 have any impacts to create this issue?
(Note: This wasn't happening previously / a few months ago)
If you attempt to do a "make gdal", the build will proceed up until a point. This appears to be happening during the jpeg-install-obj step. The recipe will fail to build for some reason, and clang will attempt to kill the job, but fail:
'''
make[1]: *** [jpeg-install-obj] Error 2
make[1]: *** Waiting for unfinished jobs
clang70++: error: unable to execute command: Killed
clang70++: error: clang frontend command failed due to signal
Android (4751641 based on r328903) clang version 7.0.2 ...
'''
After that, the host system becomes unresponsive and I'm forced to power down / restart. So far it's happened on two separate systems.
Is this happening for you? Host systems have both been running Debian 11 for reference.
Add a build of tesseract 4.1.0, possibly replacing the existing 4.0.0.
Portable detection of current directory is needed, e.g. this is the powershell equivalent for extraction:
docker run --rm -i -v %cd%/extracted:/host .....
root@e386d3d6b859:/curl-7.64.0# make
Making all in lib
make[1]: Entering directory '/curl-7.64.0/lib'
make all-am
make[2]: Entering directory '/curl-7.64.0/lib'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/curl-7.64.0/lib'
make[1]: Leaving directory '/curl-7.64.0/lib'
Making all in src
make[1]: Entering directory '/curl-7.64.0/src'
Making all in ../docs
make[2]: Entering directory '/curl-7.64.0/docs'
Making all in .
make[3]: Entering directory '/curl-7.64.0/docs'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/curl-7.64.0/docs'
Making all in cmdline-opts
make[3]: Entering directory '/curl-7.64.0/docs/cmdline-opts'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/curl-7.64.0/docs/cmdline-opts'
make[2]: Leaving directory '/curl-7.64.0/docs'
make[2]: Entering directory '/curl-7.64.0/src'
CCLD curl
/android-23-toolchain/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libssl.so.1.1, needed by ../lib/.libs/libcurl.so, not found (try using -rpath or -rpath-link)
/android-23-toolchain/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: warning: libcrypto.so.1.1, needed by ../lib/.libs/libcurl.so, not found (try using -rpath or -rpath-link)
../lib/.libs/libcurl.so: undefined reference to `DES_ecb_encrypt@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ERR_clear_error@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_md5@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_set_closer@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RAND_load_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `DES_set_key@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_version@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OpenSSL_version_num@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_sha256@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RSA_get0_key@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get_issuer_name@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ERR_error_string_n@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_use_certificate_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `d2i_OCSP_RESPONSE@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_RESPONSE_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_DigestInit_ex@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `d2i_PKCS12_bio@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_set_writer@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OPENSSL_sk_value@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_EXTENSION_get_object@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_get_cert_store@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `CONF_modules_load_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_use_certificate_chain_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_get_id@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_set_reader@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509V3_EXT_print@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get0_alpn_selected@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get0_signature@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_check_issued@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RSA_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_default_passwd_cb_userdata@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_printf@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_set_ex_data@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RAND_bytes@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_MD_CTX_new@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `i2t_ASN1_OBJECT@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_sess_set_new_cb@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_cipher_list@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_STRING_to_UTF8@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_LOOKUP_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get0_notBefore@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `DH_get0_key@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_STRING_new@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `MD5_Init@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OPENSSL_sk_pop_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_load_private_key@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_write@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_NAME_get_entry@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_SESSION_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_STRING_get0_data@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_post_handshake_auth@OPENSSL_1_1_1'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_certificate@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `PEM_write_bio_X509@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_load_crl_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_signature_print@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_ctrl@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_basic_verify@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_init@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_response_get1_basic@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get_serialNumber@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_STRING_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_DigestFinal_ex@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_use_PrivateKey_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_pending@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get_subject_name@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `i2a_ASN1_OBJECT@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_default_passwd_cb@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_read@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_get_input_flags@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `MD5_Final@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RSA_flags@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_get_first@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get_pubkey@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_ctrl@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_get_string_type@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_peer_cert_chain@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OPENSSL_sk_num@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RAND_file_name@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_get0_user_data@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `GENERAL_NAMES_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get0_RSA@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `PKCS12_PBE_add@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `i2d_X509_PUBKEY@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SHA256_Update@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_verify_cert_error_string@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_single_get0_status@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_get_next@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_set_result@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_error@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_current_cipher@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_puts@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get0_DSA@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `PKCS12_parse@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `CRYPTO_get_ex_new_index@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_destroy_method@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get0_notAfter@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_get_opener@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_check_validity@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_set_fd@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_STORE_add_lookup@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_ex_data@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `MD4_Final@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_use_PrivateKey@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_new@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_peer_certificate@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_srp_password@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `MD4_Update@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SHA256_Final@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_msg_callback@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_cert_status_str@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_next_proto_select_cb@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_alert_desc_string_long@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get1_RSA@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `DSA_get0_key@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_MD_CTX_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_copy_parameters@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_set_session@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_ctrl@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `DSA_get0_pqg@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_check_private_key@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_NAME_print_ex@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_get_reader@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_STRING_length@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OPENSSL_load_builtin_modules@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_set_opener@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_set_default@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get0_DH@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `PKCS12_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_load_builtin_engines@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_shutdown@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `DH_get0_pqg@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `CRYPTO_malloc@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_by_id@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_add_client_CA@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `PEM_read_bio_X509@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `CRYPTO_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_resp_get0@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_verify_result@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_use_certificate@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `MD5_Update@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_shutdown@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BN_print@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_create_method@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ERR_peek_error@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_response_status@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `DES_set_odd_parity@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_connect@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_OpenSSL@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_alpn_protos@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_get_privatekey@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_crl_reason_str@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_NAME_ENTRY_get_data@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_id@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_srp_username@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_NAME_get_index_by_NID@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_s_mem@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_resp_count@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_set_connect_state@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get_version@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_options@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_verify@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_response_status_str@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_get_closer@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OPENSSL_sk_pop@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `MD4_Init@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_STRING_type@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_f_ssl@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_new@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_EXTENSION_get_data@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get_X509_PUBKEY@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RAND_status@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `TLS_client_method@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `BIO_s_file@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_ciphersuites@OPENSSL_1_1_1'
../lib/.libs/libcurl.so: undefined reference to `X509_STORE_set_flags@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `RAND_add@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `EVP_DigestUpdate@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SHA256_Init@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_ctrl_cmd@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get_ext_d2i@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `X509_get0_extensions@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CIPHER_get_name@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_finish@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ERR_get_error@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `OCSP_BASICRESP_free@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_TIME_print@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ASN1_STRING_print@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_set_bio@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_set_keylog_callback@OPENSSL_1_1_1'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_new@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `ENGINE_ctrl@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `SSL_CTX_load_verify_locations@OPENSSL_1_1_0'
../lib/.libs/libcurl.so: undefined reference to `UI_method_get_writer@OPENSSL_1_1_0'
clang70: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:913: recipe for target 'curl' failed
make[2]: *** [curl] Error 1
make[2]: Leaving directory '/curl-7.64.0/src'
Makefile:1958: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/curl-7.64.0/src'
Makefile:920: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Branch with modified files here:
https://github.com/rhardih/bad/compare/curl-arm64-with-openssl
Hi @rhardih ,
I compiled tesseract 4.0.0 for android and produce shared libraries using Building from one of your Android Docker file.
I wrote a simple JNI wrapper and using ndk-build with android.mk file, I build a shared library that goes into my application. I can see, tesseract has been initialised and can get the version 4.0.0 with no issue. I am seeing no crashes but at the same time, I can't see any text has been recognised or no error is thrown.
I followed the instructions and I am sure, I downloaded the right version of trained data file into tessdata folder. Even I tried with different versions of .traineddata, didn't make any difference.
To note, when I use tesseract 3.05, I can see the code runs with no issues. I can't understand what's going wrong here. I have been trying for days and I couldn't find the issue.
I tried to post this question in tesseract. Sadly, its been closed as they said they cant provide any help for throd party projects.
I attached the sample app with JNI wrapper please click the link for the sample android application
Environment: Tesseract
Tesseract Version: tesseract 4.0.0
Current Behavior:
No text recognised at in api->GetUTF8Text()
Expected Behavior:
returns recognised text from the image
Look forward yours help!
I am trying to build tesseract 4.0.0 (.so file) arm64-v8a for Android, on a Windows PC.
I tried copying the docker file "tesseract-4.0.0.Dockerfile" on a local directory and running
build docker .
and got an error
Step 4/19 : FROM bad-tiff:4.0.10-$ARCH AS tiff-dep
pull access denied for bad-tiff, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
I also tried building image from url by running
docker build https://github.com/rhardih/bad/blob/master/tesseract/tesseract-4.0.0.Dockerfile
but again got an error
Downloading build context from remote url: https://github.com/rhardih/bad/blob/master/tesseract/tesseract-4.0.0.Dockerfile 81.11kB
Sending build context to Docker daemon 82.94kB
Error response from daemon: Dockerfile parse error line 7: unknown instruction: <!DOCTYPE
I am new to docker and cross-compilation. So, i am not sure where the problem is. Any suggestions would be great!
And thanks for this repo..!!
Instead of only adding the badge when a page reloads, it would be nice to see the counter increment as soon as an element is killed.
It would be nice to be able to use tab completion for a list of supported builds; different versions and archs for various make targets.
Verifiability depends on resolution of https://bugreports.qt.io/browse/QTBUG-73054. This problem seems to be fixed in 5.12.1.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.