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 <tigre...@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-ocr+unsubscr...@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/CAJbzG8yvxcS4cR0NJVcnLPM2sXQyzbqucu1X22r%2BjxnyEiM1fw%40mail.gmail.com.

Reply via email to