빌드 하려고 해도 빡세다
tesseact 빌드 하려니 leptonica라는게 필요하다고 에러나고
# cmake .. -- Configuring tesseract version 5.3.3... -- IPO / LTO not supported: <Change Dir: /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin
Run Build Command(s):/usr/bin/make -f Makefile && /usr/bin/cmake -S/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/src -B/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin/CMakeFiles /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin//CMakeFiles/progress.marks /usr/bin/make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin' /usr/bin/make -f CMakeFiles/foo.dir/build.make CMakeFiles/foo.dir/depend make[2]: Entering directory '/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin' cd /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/src /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/src /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin/CMakeFiles/foo.dir/DependInfo.cmake make[2]: Leaving directory '/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin' /usr/bin/make -f CMakeFiles/foo.dir/build.make CMakeFiles/foo.dir/build make[2]: Entering directory '/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin' [ 25%] Building CXX object CMakeFiles/foo.dir/foo.cpp.o /usr/bin/c++ -flto=auto -fno-fat-lto-objects -o CMakeFiles/foo.dir/foo.cpp.o -c /home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/src/foo.cpp [ 50%] Linking CXX static library libfoo.a /usr/bin/cmake -P CMakeFiles/foo.dir/cmake_clean_target.cmake /usr/bin/cmake -E cmake_link_script CMakeFiles/foo.dir/link.txt --verbose=1 "CMAKE_CXX_COMPILER_AR-NOTFOUND" cr libfoo.a CMakeFiles/foo.dir/foo.cpp.o Error running link command: No such file or directory make[2]: *** [CMakeFiles/foo.dir/build.make:100: libfoo.a] Error 2 make[2]: Leaving directory '/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin' make[1]: *** [CMakeFiles/Makefile2:88: CMakeFiles/foo.dir/all] Error 2 make[1]: Leaving directory '/home/root/tesseract-main/build/CMakeFiles/_CMakeLTOTest-CXX/bin' make: *** [Makefile:94: all] Error 2
> -- CMAKE_SYSTEM_PROCESSOR=<aarch64> -- LTO build is not supported on arm/RBPi. -- Could NOT find Leptonica (missing: Leptonica_DIR) -- Checking for module 'lept>=1.74' -- No package 'lept' found CMake Error at CMakeLists.txt:404 (message): Cannot find required library Leptonica. Quitting!
-- Configuring incomplete, errors occurred! See also "/home/root/tesseract-main/build/CMakeFiles/CMakeOutput.log". See also "/home/root/tesseract-main/build/CMakeFiles/CMakeError.log". |
[링크 : https://github.com/tesseract-ocr/tesseract]
leptonica 라는거 빌드하려니 이젠 openjp2가 없다고 -_-
# cmake .. -- Could NOT find GIF (missing: GIF_LIBRARY GIF_INCLUDE_DIR) (Required is at least version "5") -- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR) -- Could NOT find WebP (missing: WebP_DIR) -- WebP_INCLUDE_DIR : WebP_INCLUDE_DIR-NOTFOUND WebP_MUX_INCLUDE_DIR: WebP_MUX_INCLUDE_DIR-NOTFOUND WebP_LIBRARY: WebP_LIBRARY-NOTFOUND WebP_MUX_LIBRARY: WebP_MUX_LIBRARY-NOTFOUND CMake Error at /usr/lib/openjpeg-2.5/OpenJPEGTargets.cmake:95 (message): The imported target "openjp2_static" references the file
"/usr/lib/libopenjp2.a"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
"/usr/lib/openjpeg-2.5/OpenJPEGTargets.cmake"
but not all the files it references.
Call Stack (most recent call first): /usr/lib/openjpeg-2.5/OpenJPEGConfig.cmake:28 (include) CMakeLists.txt:186 (find_package)
-- Configuring incomplete, errors occurred! See also "/home/root/leptonica-master/build/CMakeFiles/CMakeOutput.log". |
귀찮으니(!) 걍 주석으로 막고 인자가 3개인 녀석으로 강제 빌드!
//#if OPJ_VERSION_MINOR == 0 // opj_stream_set_user_data(l_stream, fp); //#else opj_stream_set_user_data(l_stream, fp, (opj_stream_free_user_data_fn)NULL); //#endif |
[링크 : https://github.com/danbloomberg/leptonica]
[링크 : http://www.leptonica.org/]
openjpeg는 별다른 에러없이 빌드 완료
[링크 : https://github.com/uclouvain/openjpeg]
leptonica 에서
src/jp2kio.c 에서 아래의 부분에서 MINOR가 0으로 되면서 구버전(?) 소스를 호출하는지 함수의 형태가 달라서 에러난다.
/home/root/leptonica-master/src/jp2kio.c: In function 'opjCreateStream': /home/root/leptonica-master/src/jp2kio.c:938:5: error: too few arguments to function 'opj_stream_set_user_data' 938 | opj_stream_set_user_data(l_stream, fp); | ^~~~~~~~~~~~~~~~~~~~~~~~ |
tesseract 다시 하려니 pangocairo 패키지가 없다고 에러.. 젠장.. 이거 이전에 weston 할때
개고생(?) 시키던 이름이 악몽으로 떠오르는데?
-- No package 'pangocairo' found |
meson 깔고
# pip3 install meson Collecting meson Downloading meson-1.3.0-py3-none-any.whl (976 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 976.4/976.4 kB 3.5 MB/s eta 0:00:00 Installing collected packages: meson Successfully installed meson-1.3.0 |
pango 빌드 하려는데 git 필요하대서 git 깔고
WARNING: CMake Toolchain: Failed to determine CMake compilers state Run-time dependency fribidi found: NO (tried pkgconfig and cmake) Looking for a fallback subproject for the dependency fribidi
../meson.build:218:14: ERROR: Git program not found, cannot download fribidi.wrap via git. |
아래 링크에서 받아서 빌드..
pango 다시 빌드하는데 ninja 없으면 배쨈! 시전하고
$ mkdir build $ cd build $ meson .. ERROR: Could not detect Ninja v1.8.2 or newer |
ninja 빌드하고 설치하려는데 또 백태클 -_-
그러니 cmake를 멀리하고
12%] Building CXX object CMakeFiles/libninja.dir/src/dyndep_parser.cc.o In file included from /home/root/ninja-master/build/_deps/googletest-src/googletest/src/gtest-all.cc:42: /home/root/ninja-master/build/_deps/googletest-src/googletest/src/gtest-death-test.cc: In function 'bool testing::internal::StackGrowsDown()': /home/root/ninja-master/build/_deps/googletest-src/googletest/src/gtest-death-test.cc:1301:24: error: 'dummy' may be used uninitialized [-Werror=maybe-uninitialized] 1301 | StackLowerThanAddress(&dummy, &result); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ |
파이썬으로 빌드하는게 낫....
# python3 configure.py --bootstrap |
[링크 : https://github.com/ninja-build/ninja]
다시 pango으로 돌아와서
$ meson .. Found ninja-1.12.0.git at /usr/bin/ninja WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated. |
build 안에서 ninja 치니 알아서 빌드. + 설치
~/pango-main/build# ninja ~/pango-main/build# ninja install |
pango도 했는데 tesseract 다시 빌드 하려니 안된다 -_-
그냥 설치하는게 아니라 패키지로 만들어서 했어야 했나?
-- Checking for modules 'pango>=1.38.0;cairo;pangoft2;pangocairo;fontconfig' -- No package 'pango' found -- No package 'pangoft2' found -- No package 'pangocairo' found |
귀찮으니(!) cmake에서 패키지 확인하지 않도록 수정
~/tesseract-main/build# vi ../src/training/CMakeLists.txt if(PKG_CONFIG_FOUND OR SW_BUILD) if(PKG_CONFIG_FOUND) pkg_check_modules( PANGO REQUIRED IMPORTED_TARGET # pango>=1.38.0 # cairo # pangoft2 # pangocairo fontconfig) endif()
|
[ 95%] Building CXX object src/training/CMakeFiles/pango_training.dir/pango/ligature_table.cpp.o In file included from /home/root/tesseract-main/src/training/pango/ligature_table.cpp:24: /home/root/tesseract-main/src/training/pango/pango_font_info.h:27:10: fatal error: pango/pango-font.h: No such file or directory 27 | #include "pango/pango-font.h" | ^~~~~~~~~~~~~~~~~~~~
[ 96%] Building CXX object src/training/CMakeFiles/pango_training.dir/pango/tlog.cpp.o In file included from /home/root/tesseract-main/src/training/pango/stringrenderer.cpp:20: /home/root/tesseract-main/src/training/pango/stringrenderer.h:33:10: fatal error: pango/pango-layout.h: No such file or directory 33 | #include "pango/pango-layout.h" | ^~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/training/CMakeFiles/pango_training.dir/build.make:118: src/training/CMakeFiles/pango_training.dir/pango/stringrenderer.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /home/root/tesseract-main/src/training/pango/ligature_table.cpp:24: /home/root/tesseract-main/src/training/pango/pango_font_info.h:27:10: fatal error: pango/pango-font.h: No such file or directory 27 | #include <pango/pango-font.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/training/CMakeFiles/pango_training.dir/build.make:90: src/training/CMakeFiles/pango_training.dir/pango/ligature_table.cpp.o] Error 1 In file included from /home/root/tesseract-main/src/training/pango/pango_font_info.cpp:32: /home/root/tesseract-main/src/training/pango/pango_font_info.h:27:10: fatal error: pango/pango-font.h: No such file or directory 27 | #include <pango/pango-font.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated.
|
아마 패키지에서 배째는거 같은데 수작업으로 변경.. -_-
#include "pango/pango-font.h" #include "pango/pango.h" #include "pango/pangocairo.h"
#include <pango/pango-font.h> #include <pango/pango.h> #include <pango/pangocairo.h> |
밑도 끝도 없네 -_-
[ 96%] Building CXX object src/training/CMakeFiles/pango_training.dir/pango/pango_font_info.cpp.o In file included from /usr/local/include/pango/pango-font.h:25, from /usr/local/include/pango/pango-attributes.h:25, from /usr/local/include/pango/pango-layout.h:25, from /home/root/tesseract-main/src/training/pango/stringrenderer.h:33, from /home/root/tesseract-main/src/training/pango/stringrenderer.cpp:20: /usr/local/include/pango/pango-coverage.h:25:10: fatal error: glib-object.h: No such file or directory 25 | #include <glib-object.h> | ^~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/training/CMakeFiles/pango_training.dir/build.make:118: src/training/CMakeFiles/pango_training.dir/pango/stringrenderer.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /usr/local/include/pango/pango-font.h:25, from /home/root/tesseract-main/src/training/pango/pango_font_info.h:27, from /home/root/tesseract-main/src/training/pango/ligature_table.cpp:24: /usr/local/include/pango/pango-coverage.h:25:10: fatal error: glib-object.h: No such file or directory 25 | #include <glib-object.h> | ^~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/training/CMakeFiles/pango_training.dir/build.make:90: src/training/CMakeFiles/pango_training.dir/pango/ligature_table.cpp.o] Error 1 In file included from /usr/local/include/pango/pango-font.h:25, from /home/root/tesseract-main/src/training/pango/pango_font_info.h:27, from /home/root/tesseract-main/src/training/pango/pango_font_info.cpp:32: /usr/local/include/pango/pango-coverage.h:25:10: fatal error: glib-object.h: No such file or directory 25 | #include <glib-object.h> | ^~~~~~~~~~~~~~~ compilation terminated. |
[ 96%] Building CXX object src/training/CMakeFiles/pango_training.dir/pango/stringrenderer.cpp.o In file included from /usr/local/include/pango/pango-coverage.h:25, from /usr/local/include/pango/pango-font.h:25, from /usr/local/include/pango/pango-attributes.h:25, from /usr/local/include/pango/pango-layout.h:25, from /home/root/tesseract-main/src/training/pango/stringrenderer.h:33, from /home/root/tesseract-main/src/training/pango/stringrenderer.cpp:20: /usr/include/glib-2.0/glib-object.h:24:10: fatal error: gobject/gbinding.h: No such file or directory 24 | #include <gobject/gbinding.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/training/CMakeFiles/pango_training.dir/build.make:118: src/training/CMakeFiles/pango_training.dir/pango/stringrenderer.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /usr/local/include/pango/pango-coverage.h:25, from /usr/local/include/pango/pango-font.h:25, from /home/root/tesseract-main/src/training/pango/pango_font_info.h:27, from /home/root/tesseract-main/src/training/pango/ligature_table.cpp:24: /usr/include/glib-2.0/glib-object.h:24:10: fatal error: gobject/gbinding.h: No such file or directory 24 | #include <gobject/gbinding.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/training/CMakeFiles/pango_training.dir/build.make:90: src/training/CMakeFiles/pango_training.dir/pango/ligature_table.cpp.o] Error 1 In file included from /usr/local/include/pango/pango-coverage.h:25, from /usr/local/include/pango/pango-font.h:25, from /home/root/tesseract-main/src/training/pango/pango_font_info.h:27, from /home/root/tesseract-main/src/training/pango/pango_font_info.cpp:32: /usr/include/glib-2.0/glib-object.h:24:10: fatal error: gobject/gbinding.h: No such file or directory 24 | #include <gobject/gbinding.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated. |
inclue path를 찾는데 Makefile에 없어서 뒤져보니.. 저게 맞길..
# grep -rn "\-I" . ./CMakeFiles/libtesseract.dir/flags.make:7:CXX_INCLUDES = -I/home/root/tesseract-main/include -I/home/root/tesseract-main/src/arch -I/home/root/tesseract-main/src/ccmain -I/home/root/tesseract-main/src/ccstruct -I/home/root/tesseract-main/src/ccutil -I/home/root/tesseract-main/src/classify -I/home/root/tesseract-main/src/cutil -I/home/root/tesseract-main/src/dict -I/home/root/tesseract-main/src/lstm -I/home/root/tesseract-main/src/opencl -I/home/root/tesseract-main/src/textord -I/home/root/tesseract-main/src/viewer -I/home/root/tesseract-main/src/wordrec -I/home/root/tesseract-main/src/training -I/home/root/tesseract-main/src -I/usr/local/include/leptonica -I/home/root/tesseract-main/build -I/home/root/tesseract-main/build/include ./CMakeFiles/tesseract.dir/flags.make:7:CXX_INCLUDES = -I/usr/local/include/leptonica -I/home/root/tesseract-main/build -I/home/root/tesseract-main/build/include -I/home/root/tesseract-main/include -I/home/root/tesseract-main/src/arch -I/home/root/tesseract-main/src/ccmain -I/home/root/tesseract-main/src/ccstruct -I/home/root/tesseract-main/src/ccutil -I/home/root/tesseract-main/src/classify -I/home/root/tesseract-main/src/cutil -I/home/root/tesseract-main/src/dict -I/home/root/tesseract-main/src/lstm -I/home/root/tesseract-main/src/opencl -I/home/root/tesseract-main/src/textord -I/home/root/tesseract-main/src/viewer -I/home/root/tesseract-main/src/wordrec -I/home/root/tesseract-main/src/training |