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-ocr+unsubscr...@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.

Reply via email to