@CraigLandrum

Do you happen to have your scripts to compile on M1? Because I ended up 
getting a M2 mac too, but having trouble compiling there as well - I've 
posted the error details two posts up. Did it work smoothly for you?

On Friday, June 23, 2023 at 8:46:35 PM UTC+3 CraigLandrum wrote:

> Our application needs a universal build of both the leptonic and tesseract 
> libraries.  After trying for days to try and coerce the build tools and 
> methods to cough up a universal (arm64/x86_64) binary, I gave up and built 
> both libraries on an M1 Mac mini and then again on an Intel iMac.  after 
> that I copied the x86_64 libs to the M1 and used lipo to manually combine 
> them. I build static libs to link with our document management app because 
> I don't want to create complicated installers that have to worry about 
> checking for and installing dynamic libraries in addition to simply 
> dragging the signed and notarized app to the Applications folder.  In any 
> case, building on two different macs that used the two different CPUs I 
> need to support and then combining them was the only way I was able to get 
> this done. 
>
> On Thursday, June 22, 2023 at 12:48:27 PM UTC-4 tigr...@gmail.com wrote:
>
>> 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/575f526b-64c5-43ef-acc9-a5f89ef88302n%40googlegroups.com.

Reply via email to