If I run without host but only with this target, the make succeeds, but when using the library in Xcode iOS framework project, I'm getting
ld: in /Users/XX/XX/XX/libtesseract.a(libtesseract_la-baseapi.o), building for iOS, but linking in object file built for macOS, file '/Users/XX/XX/XX/libtesseract.a' for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) On Thursday, June 22, 2023 at 7:19:32 PM UTC+3 Maria Vilensky wrote: > @zdenop > > I've checked all the related posts in the group and it git but no luck > with solutions... > I'm now running this on M2 machine, this is the script (I want to get > arm64 library for iOS, so I understand "host" is required and not only > target) > > export SDKROOT= > "$DEVROOT/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" > export CFLAGS="-arch arm64 -pipe -no-cpp-precomp -isysroot $SDKROOT > -miphoneos-version-min=10.0 -O2 -fembed-bitcode" > sudo ../configure --target=arm-apple-darwin64 --host=arm-apple-darwin64 > --enable-static=yes --enable-shared=no --disable-graphics --disable-legacy > --without-curl > > This is the configure output: > > checking for arm-apple-darwin64-g++... no > checking for arm-apple-darwin64-clang++... no > checking for g++... g++ > checking whether the C++ compiler works... yes > checking for C++ compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... no > checking for suffix of object files... o > checking whether the compiler supports GNU C++... yes > > checking whether g++ accepts -g... yes > checking for g++ option to enable C++11 features... none needed > > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for a race-free mkdir -p... ../config/install-sh -c -d > > checking for gawk... no > checking for mawk... no > checking for nawk... no > checking for awk... awk > checking whether make sets $(MAKE)... yes > checking whether make supports the include directive... yes (GNU style) > checking whether make supports nested variables... yes > checking dependency style of g++... gcc3 > checking for a sed that does not truncate output... /usr/bin/sed > checking Major version... 5 > checking Minor version... 3 > checking Point version... 1-22-g24da4 > checking whether make supports nested variables... (cached) yes > checking build system type... aarch64-apple-darwin22.3.0 > > checking host system type... arm-apple-darwin64 > checking whether C++ compiler accepts > -Werror=unused-command-line-argument... yes > checking whether C++ compiler accepts -mfpu=neon... no > checking for feenableexcept... no > checking whether C++ compiler accepts -fopenmp-simd... yes > checking --enable-float32 argument... > checking --enable-graphics argument... no > checking --enable-legacy argument... no > checking for g++ option to support OpenMP... unsupported > checking for stdio.h... yes > > checking for stdlib.h... yes > checking for string.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for strings.h... yes > checking for sys/stat.h... yes > checking for sys/types.h... yes > checking for unistd.h... yes > > checking for tiffio.h... no > checking --enable-opencl argument... > checking for tensorflow/core/framework/graph.pb.h... no > checking if -framework Accelerate works... yes > checking if -framework OpenCL works... yes > checking --enable-visibility argument... > checking whether to use tessdata-prefix... yes > checking if compiling with clang... yes > checking whether to enable debugging... > checking how to print strings... printf > checking for arm-apple-darwin64-gcc... no > checking for gcc... gcc > checking whether the compiler supports GNU C... yes > > checking whether gcc accepts -g... yes > checking for gcc option to enable C11 features... none needed > > checking whether gcc understands -c and -o together... yes > checking dependency style of gcc... gcc3 > checking for a sed that does not truncate output... (cached) /usr/bin/sed > checking for grep that handles long lines and -e... /usr/bin/grep > checking for egrep... /usr/bin/grep -E > checking for fgrep... /usr/bin/grep -F > checking for ld used by gcc... > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld > checking if the linker > (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) > > is GNU ld... no > > checking for BSD- or MS-compatible name lister (nm)... no > checking for arm-apple-darwin64-dumpbin... no > checking for arm-apple-darwin64-link... no > checking for dumpbin... no > checking for link... link -dump > checking the name lister (nm) interface... BSD nm > checking whether ln -s works... yes > checking the maximum length of command line arguments... 786432 > checking how to convert aarch64-apple-darwin22.3.0 file names to > arm-apple-darwin64 format... func_convert_file_noop > checking how to convert aarch64-apple-darwin22.3.0 file names to toolchain > format... func_convert_file_noop > checking for > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld > > option to reload object files... -r > checking for arm-apple-darwin64-file... no > checking for file... file > > checking for arm-apple-darwin64-objdump... no > checking for objdump... objdump > checking how to recognize dependent libraries... pass_all > checking for arm-apple-darwin64-dlltool... no > checking for dlltool... no > checking how to associate runtime and link libraries... printf %s\n > checking for arm-apple-darwin64-ar... no > checking for ar... ar > checking for archiver @FILE support... no > checking for arm-apple-darwin64-strip... no > checking for strip... strip > checking for arm-apple-darwin64-ranlib... no > checking for ranlib... ranlib > checking command to parse nm output from gcc object... ok > checking for sysroot... no > checking for a working dd... /bin/dd > checking how to truncate binary pipes... /bin/dd bs=4096 count=1 > checking for arm-apple-darwin64-mt... no > checking for mt... no > checking if : is a manifest tool... no > checking for arm-apple-darwin64-dsymutil... no > checking for dsymutil... dsymutil > checking for arm-apple-darwin64-nmedit... no > checking for nmedit... nmedit > checking for arm-apple-darwin64-lipo... no > checking for lipo... lipo > checking for arm-apple-darwin64-otool... no > checking for otool... otool > checking for arm-apple-darwin64-otool64... no > checking for otool64... no > checking for -single_module linker flag... yes > checking for -exported_symbols_list linker flag... yes > checking for -force_load linker flag... yes > checking for dlfcn.h... yes > checking for objdir... .libs > checking if gcc supports -fno-rtti -fno-exceptions... yes > checking for gcc option to produce PIC... -fno-common -DPIC > checking if gcc PIC flag -fno-common -DPIC works... yes > checking if gcc static flag -static works... no > checking if gcc supports -c -o file.o... yes > checking if gcc supports -c -o file.o... (cached) yes > checking whether the gcc linker > (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) > > supports shared libraries... yes > > checking dynamic linker characteristics... darwin64 dyld > checking how to hardcode library paths into programs... immediate > checking whether stripping libraries is possible... yes > checking if libtool supports shared libraries... yes > checking whether to build shared libraries... no > checking whether to build static libraries... yes > checking how to run the C++ preprocessor... g++ -E > checking for ld used by g++... > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld > checking if the linker > (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) > > is GNU ld... no > checking whether the g++ linker > (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) > > supports shared libraries... yes > > checking for g++ option to produce PIC... -fno-common -DPIC > checking if g++ PIC flag -fno-common -DPIC works... yes > checking if g++ static flag -static works... no > checking if g++ supports -c -o file.o... yes > checking if g++ supports -c -o file.o... (cached) yes > checking whether the g++ linker > (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) > > supports shared libraries... yes > > checking dynamic linker characteristics... darwin64 dyld > checking how to hardcode library paths into programs... immediate > checking whether C++ compiler accepts -std=c++17... yes > checking whether C++ compiler accepts -std=c++20... yes > checking for library containing pthread_create... none required > checking for brew... true > checking for asciidoc... false > checking for xsltproc... true > checking for wchar_t... yes > checking for long long int... yes > checking for arm-apple-darwin64-pkg-config... no > checking for pkg-config... /opt/homebrew/bin/pkg-config > > checking pkg-config is at least version 0.9.0... yes > checking for lept >= 1.74... yes > checking for libarchive... no > checking for icu-uc >= 52.1... no > checking for icu-i18n >= 52.1... no > configure: WARNING: icu 52.1 or higher is required, but was not found. > > configure: WARNING: Training tools WILL NOT be built. > configure: WARNING: Try to install libicu-dev package. > > checking for pango >= 1.38.0... no > configure: WARNING: pango 1.38.0 or higher is required, but was not found. > configure: WARNING: Training tools WILL NOT be built. > configure: WARNING: Try to install libpango1.0-dev package. > checking for cairo... no > configure: WARNING: Training tools WILL NOT be built because of missing > cairo library. > configure: WARNING: Try to install libcairo-dev?? package. > checking for pangocairo... no > checking for pangoft2... no > checking that generated files are newer than configure... done > configure: creating ./config.status > config.status: creating include/tesseract/version.h > config.status: creating Makefile > config.status: creating tesseract.pc > config.status: creating tessdata/Makefile > config.status: creating tessdata/configs/Makefile > config.status: creating tessdata/tessconfigs/Makefile > config.status: creating java/Makefile > config.status: creating java/com/Makefile > config.status: creating java/com/google/Makefile > config.status: creating java/com/google/scrollview/Makefile > config.status: creating java/com/google/scrollview/events/Makefile > config.status: creating java/com/google/scrollview/ui/Makefile > config.status: creating include/config_auto.h > config.status: executing depfiles commands > config.status: executing libtool commands > > Configuration is done. > You can now build and install tesseract by running: > > $ make > $ sudo make install > $ sudo ldconfig > > > This is the make output: > > sudo make -sj8 > Making all in . > CXX src/tesseract-tesseract.o > CXX src/api/libtesseract_la-baseapi.lo > CXX src/api/libtesseract_la-altorenderer.lo > CXX src/api/libtesseract_la-capi.lo > CXX src/api/libtesseract_la-lstmboxrenderer.lo > CXX src/api/libtesseract_la-hocrrenderer.lo > CXX src/api/libtesseract_la-pdfrenderer.lo > CXX src/api/libtesseract_la-renderer.lo > CXX src/api/libtesseract_la-wordstrboxrenderer.lo > CXX src/arch/libtesseract_la-intsimdmatrix.lo > CXX src/arch/libtesseract_la-simddetect.lo > CXX src/ccmain/libtesseract_la-applybox.lo > CXX src/ccmain/libtesseract_la-control.lo > CXX src/ccmain/libtesseract_la-linerec.lo > CXX src/ccmain/libtesseract_la-ltrresultiterator.lo > CXX src/ccmain/libtesseract_la-output.lo > CXX src/ccmain/libtesseract_la-pageiterator.lo > CXX src/ccmain/libtesseract_la-pagesegmain.lo > CXX src/ccmain/libtesseract_la-pagewalk.lo > CXX src/ccmain/libtesseract_la-paragraphs.lo > CXX src/ccmain/libtesseract_la-reject.lo > CXX src/ccmain/libtesseract_la-resultiterator.lo > CXX src/ccmain/libtesseract_la-tessedit.lo > CXX src/ccmain/libtesseract_la-tesseractclass.lo > CXX src/ccmain/libtesseract_la-thresholder.lo > CXX src/ccmain/libtesseract_la-werdit.lo > CXX src/ccstruct/libtesseract_la-blamer.lo > CXX src/ccstruct/libtesseract_la-blobbox.lo > CXX src/ccstruct/libtesseract_la-blobs.lo > CXX src/ccstruct/libtesseract_la-blread.lo > CXX src/ccstruct/libtesseract_la-boxread.lo > CXX src/ccstruct/libtesseract_la-boxword.lo > CXX src/ccstruct/libtesseract_la-ccstruct.lo > CXX src/ccstruct/libtesseract_la-coutln.lo > CXX src/ccstruct/libtesseract_la-detlinefit.lo > CXX src/ccstruct/libtesseract_la-image.lo > CXX src/ccstruct/libtesseract_la-imagedata.lo > CXX src/ccstruct/libtesseract_la-linlsq.lo > CXX src/ccstruct/libtesseract_la-matrix.lo > CXX src/ccstruct/libtesseract_la-mod128.lo > CXX src/ccstruct/libtesseract_la-normalis.lo > CXX src/ccstruct/libtesseract_la-ocrblock.lo > CXX src/ccstruct/libtesseract_la-ocrpara.lo > CXX src/ccstruct/libtesseract_la-ocrrow.lo > CXX src/ccstruct/libtesseract_la-otsuthr.lo > CXX src/ccstruct/libtesseract_la-pageres.lo > CXX src/ccstruct/libtesseract_la-pdblock.lo > CXX src/ccstruct/libtesseract_la-points.lo > CXX src/ccstruct/libtesseract_la-polyaprx.lo > CXX src/ccstruct/libtesseract_la-polyblk.lo > CXX src/ccstruct/libtesseract_la-quadlsq.lo > CXX src/ccstruct/libtesseract_la-quspline.lo > CXX src/ccstruct/libtesseract_la-ratngs.lo > CXX src/ccstruct/libtesseract_la-rect.lo > CXX src/ccstruct/libtesseract_la-seam.lo > CXX src/ccstruct/libtesseract_la-split.lo > CXX src/ccstruct/libtesseract_la-statistc.lo > CXX src/ccstruct/libtesseract_la-stepblob.lo > CXX src/ccstruct/libtesseract_la-werd.lo > CXX src/classify/libtesseract_la-classify.lo > CXX src/dict/libtesseract_la-context.lo > CXX src/dict/libtesseract_la-dawg.lo > CXX src/dict/libtesseract_la-dawg_cache.lo > CXX src/dict/libtesseract_la-dict.lo > CXX src/dict/libtesseract_la-stopper.lo > CXX src/dict/libtesseract_la-trie.lo > CXX src/textord/libtesseract_la-alignedblob.lo > CXX src/textord/libtesseract_la-baselinedetect.lo > CXX src/textord/libtesseract_la-bbgrid.lo > CXX src/textord/libtesseract_la-blkocc.lo > CXX src/textord/libtesseract_la-blobgrid.lo > CXX src/textord/libtesseract_la-ccnontextdetect.lo > CXX src/textord/libtesseract_la-cjkpitch.lo > CXX src/textord/libtesseract_la-colfind.lo > CXX src/textord/libtesseract_la-colpartition.lo > CXX src/textord/libtesseract_la-colpartitionset.lo > CXX src/textord/libtesseract_la-colpartitiongrid.lo > CXX src/textord/libtesseract_la-devanagari_processing.lo > CXX src/textord/libtesseract_la-drawtord.lo > CXX src/textord/libtesseract_la-edgblob.lo > CXX src/textord/libtesseract_la-edgloop.lo > CXX src/textord/libtesseract_la-fpchop.lo > CXX src/textord/libtesseract_la-gap_map.lo > CXX src/textord/libtesseract_la-imagefind.lo > CXX src/textord/libtesseract_la-linefind.lo > CXX src/textord/libtesseract_la-makerow.lo > CXX src/textord/libtesseract_la-oldbasel.lo > CXX src/textord/libtesseract_la-pithsync.lo > CXX src/textord/libtesseract_la-pitsync1.lo > CXX src/textord/libtesseract_la-scanedg.lo > CXX src/textord/libtesseract_la-sortflts.lo > CXX src/textord/libtesseract_la-strokewidth.lo > CXX src/textord/libtesseract_la-tabfind.lo > CXX src/textord/libtesseract_la-tablefind.lo > CXX src/textord/libtesseract_la-tabvector.lo > CXX src/textord/libtesseract_la-tablerecog.lo > CXX src/textord/libtesseract_la-textlineprojection.lo > CXX src/textord/libtesseract_la-textord.lo > CXX src/textord/libtesseract_la-topitch.lo > CXX src/textord/libtesseract_la-tordmain.lo > CXX src/textord/libtesseract_la-tospace.lo > CXX src/textord/libtesseract_la-underlin.lo > CXX src/textord/libtesseract_la-wordseg.lo > CXX src/textord/libtesseract_la-workingpartset.lo > CXX src/wordrec/libtesseract_la-tface.lo > CXX src/wordrec/libtesseract_la-wordrec.lo > CXX src/ccutil/libtesseract_ccutil_la-ccutil.lo > CXX src/ccutil/libtesseract_ccutil_la-clst.lo > CXX src/ccutil/libtesseract_ccutil_la-elst2.lo > CXX src/ccutil/libtesseract_ccutil_la-elst.lo > CXX src/ccutil/libtesseract_ccutil_la-serialis.lo > CXX src/ccutil/libtesseract_ccutil_la-scanutils.lo > CXX src/ccutil/libtesseract_ccutil_la-tessdatamanager.lo > CXX src/ccutil/libtesseract_ccutil_la-tprintf.lo > CXX src/ccutil/libtesseract_ccutil_la-unicharcompress.lo > CXX src/ccutil/libtesseract_ccutil_la-unicharset.lo > CXX src/ccutil/libtesseract_ccutil_la-params.lo > CXX src/lstm/libtesseract_lstm_la-convolve.lo > CXX src/lstm/libtesseract_lstm_la-fullyconnected.lo > CXX src/lstm/libtesseract_lstm_la-functions.lo > CXX src/lstm/libtesseract_lstm_la-input.lo > CXX src/lstm/libtesseract_lstm_la-lstm.lo > CXX src/lstm/libtesseract_lstm_la-lstmrecognizer.lo > CXX src/lstm/libtesseract_lstm_la-maxpool.lo > CXX src/lstm/libtesseract_lstm_la-network.lo > CXX src/lstm/libtesseract_lstm_la-networkio.lo > CXX src/lstm/libtesseract_lstm_la-parallel.lo > CXX src/lstm/libtesseract_lstm_la-plumbing.lo > CXX src/lstm/libtesseract_lstm_la-recodebeam.lo > CXX src/lstm/libtesseract_lstm_la-reconfig.lo > CXX src/lstm/libtesseract_lstm_la-reversed.lo > CXX src/lstm/libtesseract_lstm_la-series.lo > CXX src/lstm/libtesseract_lstm_la-weightmatrix.lo > CXX src/arch/libtesseract_native_la-dotproduct.lo > CXXLD libtesseract_ccutil.la > CXXLD libtesseract_native.la > > CXXLD libtesseract_lstm.la > CXXLD libtesseract.la > CXXLD tesseract > > > > > > > > > *Undefined symbols for architecture arm64: > "tesseract::IntSimdMatrix::intSimdMatrixNEON", referenced from: > tesseract::SIMDDetect::SIMDDetect() in > libtesseract.a(libtesseract_la-simddetect.o) > tesseract::SIMDDetect::Update() in > libtesseract.a(libtesseract_la-simddetect.o) > "tesseract::DotProductNEON(float const*, float const*, int)", referenced > from: tesseract::SIMDDetect::SIMDDetect() in > libtesseract.a(libtesseract_la-simddetect.o) > tesseract::SIMDDetect::Update() in > libtesseract.a(libtesseract_la-simddetect.o)ld: symbol(s) not found for > architecture arm64clang: error: linker command failed with exit code 1 (use > -v to see invocation)* > make[1]: *** [tesseract] Error 1 > make: *** [all-recursive] Error 1 > > > On Tuesday, June 20, 2023 at 9:47:46 PM UTC+3 zdenop wrote: > >> Please do not post only the last error - usually, there is a problem >> before and e,g, configure output could indicate a lot of... >> >> Make sure you check the issue tracker where are already some hints on >> what to check e.g. >> https://github.com/tesseract-ocr/tesseract/issues/3980 >> https://github.com/tesseract-ocr/tesseract/issues/3746 >> https://github.com/tesseract-ocr/tesseract/issues/3286 >> >> >> Zdenko >> >> >> ut 20. 6. 2023 o 15:16 Maria Vilensky <tigr...@gmail.com> napísal(a): >> >>> We now tried the same script on M1 based machine, and the error is as >>> follows: >>> >>> CXXLD libtesseract_native.la >>> CXXLD libtesseract_ccutil.la >>> CXXLD libtesseract_lstm.la >>> CXXLD libtesseract.la >>> CXXLD tesseract >>> Undefined symbols for architecture arm64: >>> "tesseract::IntSimdMatrix::intSimdMatrixNEON", referenced from: >>> tesseract::SIMDDetect::SIMDDetect() in >>> libtesseract.a(libtesseract_la-simddetect.o) >>> tesseract::SIMDDetect::Update() in >>> libtesseract.a(libtesseract_la-simddetect.o) >>> "tesseract::DotProductNEON(float const*, float const*, int)", referenced >>> from: >>> tesseract::SIMDDetect::SIMDDetect() in >>> libtesseract.a(libtesseract_la-simddetect.o) >>> tesseract::SIMDDetect::Update() in >>> libtesseract.a(libtesseract_la-simddetect.o) >>> ld: symbol(s) not found for architecture arm64 >>> clang: error: linker command failed with exit code 1 (use -v to see >>> invocation) >>> >>> On Tuesday, June 20, 2023 at 9:39:28 AM UTC+3 Maria Vilensky wrote: >>> >>>> Thanks for your reply, after many more googling and build attempts, I >>>> am not even sure if this is supposed to work - compling arm64 library on >>>> an >>>> Intel-based mac? Can anyone who tried this confirm this or give a >>>> suggestion how to deal with it? >>>> Thanks! >>>> >>>> On Sunday, June 18, 2023 at 5:02:10 PM UTC+3 zdenop wrote: >>>> >>>>> Hello, >>>>> >>>>> I am not Mac user, but the following output indicates that autotools >>>>> are not able to use g++ for arm-64: >>>>> >>>>> checking for arm-apple-darwin64-g++... no >>>>> checking for arm-apple-darwin64-clang++... no >>>>> >>>>> Also, you try to force linking LIBS="-lz -lpng -ljpeg -ltiff", but >>>>> configure claims tiffio.h (tiff header file) is not present: >>>>> checking tiffio.h usability... no >>>>> checking tiffio.h presence... no >>>>> checking for tiffio.h... no >>>>> It does not make sense to me... >>>>> >>>>> Also >>>>> checking for arm-apple-darwin64-pkg-config... no >>>>> checking for pkg-config... /usr/local/bin/pkg-config >>>>> IMO you should use pkg-config within $DEVROOT/ tree, right? >>>>> >>>>> There is a lot of "checking for arm-apple-darwin64-xyz... no". You >>>>> need to fix this first. As this is not tesseract specific, try to use >>>>> some >>>>> Max arm forum for solving it. >>>>> >>>>> Zdenko >>>>> >>>>> >>>>> ne 18. 6. 2023 o 14:07 Maria Vilensky <tigr...@gmail.com> napísal(a): >>>>> >>>>>> Hi, >>>>>> >>>>>> I'm trying to build tessract-ocr (latest version) on Mac Ventura for >>>>>> arch arm-64 to link in ios project. >>>>>> >>>>>> I'm using this script: >>>>>> >>>>>> export DEVROOT=/Applications/Xcode.app/Contents/Developer >>>>>> export SDKROOT= >>>>>> "$DEVROOT/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.2.sdk" >>>>>> export CFLAGS="-I$SDKROOT/usr/include/ >>>>>> -I/desktop/projects/tesseract/include/ -arch arm64 -pipe -no-cpp-precomp >>>>>> -isysroot $SDKROOT -miphoneos-version-min=10.0 -O2 -fembed-bitcode" >>>>>> export CPPFLAGS=$CFLAGS >>>>>> export CXXFLAGS="-I/desktop/projects/tesseract/arm-apple-darwin64/ >>>>>> -arch arm64 -pipe -no-cpp-precomp -isysroot $SDKROOT >>>>>> -miphoneos-version-min=10.0 -O2 -Wno-deprecated-register" >>>>>> export LDFLAGS="-L$SDKROOT/usr/lib/" >>>>>> export LIBS="-lz -lpng -ljpeg -ltiff" >>>>>> export LD="$DEVROOT/usr/bin/ld" >>>>>> export CC="$DEVROOT/usr/bin/gcc --target=arm-apple-darwin64" >>>>>> export CXX="$DEVROOT/usr/bin/g++ --target=arm-apple-darwin64" >>>>>> #export CXX="$DEVROOT/usr/bin/clang++ --target=arm-apple-darwin64 >>>>>> export LEPTONICA_LIBS="-llept" >>>>>> export AR= >>>>>> "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar" >>>>>> export RANLIB= >>>>>> "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib" >>>>>> >>>>>> sudo ../configure --host=arm-apple-darwin64 --enable-static=yes >>>>>> --enable-shared=no --disable-graphics --disable-legacy --without-cur >>>>>> # sudo ../configure --target=arm-apple-darwin64 --enable-static=yes >>>>>> --enable-shared=no --disable-graphics --disable-legacy --without-curl >>>>>> >>>>>> The configuration and make are successful, however, when I run >>>>>> >>>>>> *lipo ./.libs/libtesseract.a -info* >>>>>> on the produced file I get: >>>>>> >>>>>> *Non-fat file: ./.libs/libtesseract.a is architecture: x86_64* >>>>>> >>>>>> And linking the library in xcode produces build error: >>>>>> >>>>>> *Ignoring file ./libtesseract.a, building for iOS-arm64 but >>>>>> attempting to link with file built for macOS-x86_64* >>>>>> >>>>>> Undefined symbol: tesseract::TessBaseAPI::GetUTF8Text() >>>>>> >>>>>> Undefined symbol: tesseract::TessBaseAPI::SetVariable(char const*, >>>>>> char const*) >>>>>> >>>>>> Undefined symbol: >>>>>> tesseract::TessBaseAPI::SetPageSegMode(tesseract::PageSegMode) >>>>>> >>>>>> Undefined symbol: tesseract::TessBaseAPI::Init(char const*, char >>>>>> const*, tesseract::OcrEngineMode, char**, int, >>>>>> std::__1::vector<std::__1::basic_string<char, >>>>>> std::__1::char_traits<char>, >>>>>> std::__1::allocator<char>>, >>>>>> std::__1::allocator<std::__1::basic_string<char, >>>>>> std::__1::char_traits<char>, std::__1::allocator<char>>>> const*, >>>>>> std::__1::vector<std::__1::basic_string<char, >>>>>> std::__1::char_traits<char>, >>>>>> std::__1::allocator<char>>, >>>>>> std::__1::allocator<std::__1::basic_string<char, >>>>>> std::__1::char_traits<char>, std::__1::allocator<char>>>> const*, >>>>>> bool)Undefined symbol: tesseract::TessBaseAPI::Version() >>>>>> >>>>>> Undefined symbol: tesseract::TessBaseAPI::SetImage(unsigned char >>>>>> const*, int, int, int, int) >>>>>> >>>>>> Undefined symbol: tesseract::TessBaseAPI::TessBaseAPI() >>>>>> >>>>>> Here is the output of configure: >>>>>> >>>>>> configure: WARNING: unrecognized options: --without-cur >>>>>> checking for arm-apple-darwin64-g++... no >>>>>> checking for arm-apple-darwin64-clang++... no >>>>>> checking for g++... g++ >>>>>> checking whether the C++ compiler works... yes >>>>>> checking for C++ compiler default output file name... a.out >>>>>> checking for suffix of executables... >>>>>> checking whether we are cross compiling... no >>>>>> checking for suffix of object files... o >>>>>> checking whether we are using the GNU C++ compiler... yes >>>>>> checking whether g++ accepts -g... yes >>>>>> checking for a BSD-compatible install... /usr/bin/install -c >>>>>> checking whether build environment is sane... yes >>>>>> checking for a thread-safe mkdir -p... ../config/install-sh -c -d >>>>>> checking for gawk... no >>>>>> checking for mawk... no >>>>>> checking for nawk... no >>>>>> checking for awk... awk >>>>>> checking whether make sets $(MAKE)... yes >>>>>> checking whether make supports the include directive... yes (GNU >>>>>> style) >>>>>> checking whether make supports nested variables... yes >>>>>> checking dependency style of g++... gcc3 >>>>>> checking for a sed that does not truncate output... /usr/bin/sed >>>>>> checking Major version... 5 >>>>>> checking Minor version... 3 >>>>>> checking Point version... 1-22-g24da4 >>>>>> checking whether make supports nested variables... (cached) yes >>>>>> checking build system type... x86_64-apple-darwin22.5.0 >>>>>> checking host system type... arm-apple-darwin64 >>>>>> checking whether C++ compiler accepts >>>>>> -Werror=unused-command-line-argument... yes >>>>>> checking whether C++ compiler accepts -mfpu=neon... no >>>>>> checking for feenableexcept... no >>>>>> checking whether C++ compiler accepts -fopenmp-simd... yes >>>>>> checking --enable-float32 argument... >>>>>> checking --enable-graphics argument... no >>>>>> checking --enable-legacy argument... no >>>>>> checking for g++ option to support OpenMP... unsupported >>>>>> checking how to run the C++ preprocessor... g++ -E >>>>>> checking for grep that handles long lines and -e... /usr/bin/grep >>>>>> checking for egrep... /usr/bin/grep -E >>>>>> checking for ANSI C header files... yes >>>>>> checking for sys/types.h... yes >>>>>> checking for sys/stat.h... yes >>>>>> checking for stdlib.h... yes >>>>>> checking for string.h... yes >>>>>> checking for memory.h... yes >>>>>> checking for strings.h... yes >>>>>> checking for inttypes.h... yes >>>>>> checking for stdint.h... yes >>>>>> checking for unistd.h... yes >>>>>> checking tiffio.h usability... no >>>>>> checking tiffio.h presence... no >>>>>> checking for tiffio.h... no >>>>>> checking --enable-opencl argument... >>>>>> checking tensorflow/core/framework/graph.pb.h usability... no >>>>>> checking tensorflow/core/framework/graph.pb.h presence... no >>>>>> checking for tensorflow/core/framework/graph.pb.h... no >>>>>> checking if -framework Accelerate works... yes >>>>>> checking if -framework OpenCL works... yes >>>>>> checking --enable-visibility argument... >>>>>> checking whether to use tessdata-prefix... yes >>>>>> checking if compiling with clang... yes >>>>>> checking whether to enable debugging... >>>>>> checking how to print strings... printf >>>>>> checking for arm-apple-darwin64-gcc... no >>>>>> checking for gcc... gcc >>>>>> checking whether we are using the GNU C compiler... yes >>>>>> checking whether gcc accepts -g... yes >>>>>> checking for gcc option to accept ISO C89... none needed >>>>>> checking whether gcc understands -c and -o together... yes >>>>>> checking dependency style of gcc... gcc3 >>>>>> checking for a sed that does not truncate output... (cached) >>>>>> /usr/bin/sed >>>>>> checking for fgrep... /usr/bin/grep -F >>>>>> checking for ld used by gcc... >>>>>> /Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld >>>>>> checking if the linker >>>>>> (/Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) >>>>>> >>>>>> is GNU ld... no >>>>>> checking for BSD- or MS-compatible name lister (nm)... no >>>>>> checking for arm-apple-darwin64-dumpbin... no >>>>>> checking for arm-apple-darwin64-link... no >>>>>> checking for dumpbin... no >>>>>> checking for link... link -dump >>>>>> checking the name lister (nm) interface... BSD nm >>>>>> checking whether ln -s works... yes >>>>>> checking the maximum length of command line arguments... 786432 >>>>>> checking how to convert x86_64-apple-darwin22.5.0 file names to >>>>>> arm-apple-darwin64 format... func_convert_file_noop >>>>>> checking how to convert x86_64-apple-darwin22.5.0 file names to >>>>>> toolchain format... func_convert_file_noop >>>>>> checking for >>>>>> /Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld >>>>>> >>>>>> option to reload object files... -r >>>>>> checking for arm-apple-darwin64-objdump... no >>>>>> checking for objdump... objdump >>>>>> checking how to recognize dependent libraries... pass_all >>>>>> checking for arm-apple-darwin64-dlltool... no >>>>>> checking for dlltool... no >>>>>> checking how to associate runtime and link libraries... printf %s\n >>>>>> checking for arm-apple-darwin64-ar... no >>>>>> checking for ar... ar >>>>>> checking for archiver @FILE support... no >>>>>> checking for arm-apple-darwin64-strip... no >>>>>> checking for strip... strip >>>>>> checking for arm-apple-darwin64-ranlib... no >>>>>> checking for ranlib... ranlib >>>>>> checking command to parse nm output from gcc object... ok >>>>>> checking for sysroot... no >>>>>> checking for a working dd... /bin/dd >>>>>> checking how to truncate binary pipes... /bin/dd bs=4096 count=1 >>>>>> checking for arm-apple-darwin64-mt... no >>>>>> checking for mt... no >>>>>> checking if : is a manifest tool... no >>>>>> checking for arm-apple-darwin64-dsymutil... no >>>>>> checking for dsymutil... dsymutil >>>>>> checking for arm-apple-darwin64-nmedit... no >>>>>> checking for nmedit... nmedit >>>>>> checking for arm-apple-darwin64-lipo... no >>>>>> checking for lipo... lipo >>>>>> checking for arm-apple-darwin64-otool... no >>>>>> checking for otool... otool >>>>>> checking for arm-apple-darwin64-otool64... no >>>>>> checking for otool64... no >>>>>> checking for -single_module linker flag... yes >>>>>> checking for -exported_symbols_list linker flag... yes >>>>>> checking for -force_load linker flag... yes >>>>>> checking for dlfcn.h... yes >>>>>> checking for objdir... .libs >>>>>> checking if gcc supports -fno-rtti -fno-exceptions... yes >>>>>> checking for gcc option to produce PIC... -fno-common -DPIC >>>>>> checking if gcc PIC flag -fno-common -DPIC works... yes >>>>>> checking if gcc static flag -static works... no >>>>>> checking if gcc supports -c -o file.o... yes >>>>>> checking if gcc supports -c -o file.o... (cached) yes >>>>>> checking whether the gcc linker >>>>>> (/Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) >>>>>> >>>>>> supports shared libraries... yes >>>>>> checking dynamic linker characteristics... darwin64 dyld >>>>>> checking how to hardcode library paths into programs... immediate >>>>>> checking whether stripping libraries is possible... yes >>>>>> checking if libtool supports shared libraries... yes >>>>>> checking whether to build shared libraries... no >>>>>> checking whether to build static libraries... yes >>>>>> checking how to run the C++ preprocessor... g++ -E >>>>>> checking for ld used by g++... >>>>>> /Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld >>>>>> checking if the linker >>>>>> (/Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) >>>>>> >>>>>> is GNU ld... no >>>>>> checking whether the g++ linker >>>>>> (/Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) >>>>>> >>>>>> supports shared libraries... yes >>>>>> checking for g++ option to produce PIC... -fno-common -DPIC >>>>>> checking if g++ PIC flag -fno-common -DPIC works... yes >>>>>> checking if g++ static flag -static works... no >>>>>> checking if g++ supports -c -o file.o... yes >>>>>> checking if g++ supports -c -o file.o... (cached) yes >>>>>> checking whether the g++ linker >>>>>> (/Users/Tnova/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) >>>>>> >>>>>> supports shared libraries... yes >>>>>> checking dynamic linker characteristics... darwin64 dyld >>>>>> checking how to hardcode library paths into programs... immediate >>>>>> checking whether C++ compiler accepts -std=c++17... yes >>>>>> checking whether C++ compiler accepts -std=c++20... yes >>>>>> checking for library containing pthread_create... none required >>>>>> checking for brew... true >>>>>> checking for asciidoc... false >>>>>> checking for xsltproc... true >>>>>> checking for wchar_t... yes >>>>>> checking for long long int... yes >>>>>> checking for arm-apple-darwin64-pkg-config... no >>>>>> checking for pkg-config... /usr/local/bin/pkg-config >>>>>> checking pkg-config is at least version 0.9.0... yes >>>>>> checking for libcurl... yes >>>>>> checking for lept >= 1.74... yes >>>>>> checking for libarchive... yes >>>>>> checking for icu-uc >= 52.1... yes >>>>>> checking for icu-i18n >= 52.1... yes >>>>>> checking for pango >= 1.38.0... no >>>>>> configure: WARNING: pango 1.38.0 or higher is required, but was not >>>>>> found. >>>>>> configure: WARNING: Training tools WILL NOT be built. >>>>>> configure: WARNING: Try to install libpango1.0-dev package. >>>>>> checking for cairo... no >>>>>> configure: WARNING: Training tools WILL NOT be built because of >>>>>> missing cairo library. >>>>>> configure: WARNING: Try to install libcairo-dev?? package. >>>>>> checking for pangocairo... no >>>>>> checking for pangoft2... no >>>>>> checking that generated files are newer than configure... done >>>>>> configure: creating ./config.status >>>>>> config.status: creating include/tesseract/version.h >>>>>> config.status: creating Makefile >>>>>> config.status: creating tesseract.pc >>>>>> config.status: creating tessdata/Makefile >>>>>> config.status: creating tessdata/configs/Makefile >>>>>> config.status: creating tessdata/tessconfigs/Makefile >>>>>> config.status: creating java/Makefile >>>>>> config.status: creating java/com/Makefile >>>>>> config.status: creating java/com/google/Makefile >>>>>> config.status: creating java/com/google/scrollview/Makefile >>>>>> config.status: creating java/com/google/scrollview/events/Makefile >>>>>> config.status: creating java/com/google/scrollview/ui/Makefile >>>>>> config.status: creating include/config_auto.h >>>>>> config.status: executing depfiles commands >>>>>> config.status: executing libtool commands >>>>>> configure: WARNING: unrecognized options: --without-cur >>>>>> >>>>>> Configuration is done. >>>>>> You can now build and install tesseract by running: >>>>>> >>>>>> $ make >>>>>> $ sudo make install >>>>>> $ sudo ldconfig >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "tesseract-ocr" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to tesseract-oc...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/tesseract-ocr/dcdf433a-1332-405e-b97d-b5a2e42ad6d1n%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/tesseract-ocr/dcdf433a-1332-405e-b97d-b5a2e42ad6d1n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "tesseract-ocr" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to tesseract-oc...@googlegroups.com. >>> >> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/tesseract-ocr/31a204ca-695c-4ed0-8393-8ce544a66c4cn%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/tesseract-ocr/31a204ca-695c-4ed0-8393-8ce544a66c4cn%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "tesseract-ocr" group. To unsubscribe from this group and stop receiving emails from it, send an email to tesseract-ocr+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tesseract-ocr/a49ed896-e069-49ea-9817-8c88d213c743n%40googlegroups.com.