2
votes

OSX - Compilation d'outils de formation pour Tesseract 4.0 - bibliothèques pango introuvables

J'ai du mal à faire en sorte que le script configure reconnaisse les bibliothèques pango que j'ai installées via Homebrew, qui sont des dépendances pour les outils de formation. Jusqu'à présent, j'ai suivi toutes les étapes détaillées ici:

https: // github .com / tesseract-ocr / tesseract / issues / 1453

et ici:

https://github.com/tesseract-ocr/tesseract/wiki/Compiling#macos

et après l'exécution de configure script, je continue à recevoir ces avertissements dans la sortie:

recherche de pango> = 1.22.0 ... non

configure: AVERTISSEMENT: pango 1.22.0 ou supérieur est requis, mais ne l'était pas trouvé.

configure: AVERTISSEMENT: les outils de formation NE SERONT PAS construits.

configure: AVERTISSEMENT: essayez d'installer le paquet libpango1.0-dev.

recherche du Caire ... non

configure: AVERTISSEMENT: les outils de formation NE SERONT PAS créés à cause de bibliothèque du Caire manquante.

configurez: AVERTISSEMENT: essayez d'installer libcairo-dev ?? package.

Les bibliothèques sont situées là où elles devraient être, à /usr/local/Cellar/pango/1.42.4_1

J'ai essayé d'exécuter le script de configuration selon les instructions ci-dessus:

./configure LDFLAGS="-L/usr/local/opt/icu4c/lib -L/usr/local/Cellar/pango/1.42.4_1/lib" CPPFLAGS="-I/usr/local/opt/icu4c/include"

ainsi que d'essayer d'ajouter le chemin aux indicateurs de liaison:

./configure CPPFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib

et je ne parviens toujours pas à obtenir le script pour voir les bibliothèques.

Merci d'avance pour tout conseil sur la façon de résoudre ce problème.


0 commentaires

4 Réponses :


2
votes

Cela ressemble à pango et / ou cairo et peut-être que d'autres bibliothèques dépendent de libffi . libffi est appelé à être uniquement en fût dans Homebrew. Même si libffi est installé, il n'est pas lié via des liens symboliques. Lorsque pkg-config tente de trouver une bibliothèque, il vérifie également ses dépendances . Étant donné que libffi ne peut pas être localisé, pkg-config indique que cairo n'est pas disponible. Par conséquent, il faut appeler

brew link libffi --force

Cela devrait résoudre le problème sans rien toucher de plus. Au moins, cela a fonctionné pour mon cas.


1 commentaires

Dans mon cas, cette commande a produit l'avertissement suivant: Refus de lier le logiciel fourni par macOS: libffi . Cependant, l'indication fournie a finalement fait l'affaire: Pour que les compilateurs trouvent libffi, vous devrez peut-être définir: export LDFLAGS = "- L / usr / local / opt / libffi / lib" .



1
votes

J'ai résolu ce problème en copiant les fichiers pkgconfig sous libffi et icu4c
(trouvez le chemin en tapant le lien de brassage libffi icu4c dans votre terminal)
et les coller dans / usr / local / lib / pkgconfig puis définir

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig


0 commentaires

2
votes

Voici la solution la plus élégante au problème que j'ai trouvée:

brew install cairo pango icu4c autoconf libffi libarchive libpng
export PKG_CONFIG_PATH=\
$(brew --prefix)/lib/pkgconfig:\
$(brew --prefix)/opt/libarchive/lib/pkgconfig:\
$(brew --prefix)/opt/icu4c/lib/pkgconfig:\
$(brew --prefix)/opt/libffi/lib/pkgconfig:\
$(brew --prefix)/opt/libpng/lib/pkgconfig
./configure

https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#on-macos-mojave-with-homebrew a >


2 commentaires

Cela n'a toujours pas fonctionné pour moi - même avertissement que OP -> ne peut pas créer d'outils de formation.


Dans mon cas, j'avais également besoin d'ajouter explicitement brew install libpng et d'insérer $ (brew --prefix) / opt / libpng / lib / pkgconfig dans votre ligne d'exportation. Souhaitez-vous incorporer cela dans votre réponse ou (semble injuste) devrais-je l'ajouter en tant que réponse distincte?



2
votes

Ceci est une version modifiée de la réponse fournie par Boris [Boris: dites simplement le mot et je vais supprimer ceci].

Testé sur macOS 10.13.6 High Sierra. p >

Aucune des réponses préexistantes n'a fonctionné pour moi - j'ai dû ajouter explicitement libpng à mes exigences de brassage telles que données par Boris:

pkg-config --exists --print-errors pango
dyld: Symbol not found: __cg_png_create_info_struct
  Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
  Expected in: /usr/local/lib/libPng.dylib
 in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Abort trap: 6

Remarque: Si vous disposez déjà de certains des éléments ci-dessus, vous pouvez plutôt exécuter brew reinstall à la place de brew install , au risque d'endommager d'autres projets. p>

Je n'ai pas eu besoin de fournir d'indicateur pour configure .

Le but est bien sûr de faire compiler les outils de formation pour que combine_tessdata , wordlist2dawg , dawg2wordlist etc. sont disponibles (je n'ai trouvé nulle part les binaires macOS pour ces derniers).

Les instructions complètes deviennent alors :

$PKG_CONFIG --exists --print-errors "pango >= 1.22.0"

Note de bas de page: Comment j'ai diagnostiqué le problème de libpng:

Comme indiqué ci-dessus et ici , l'erreur générée n'est pas très utile:

./configure --enable-debug

Creuser un peu plus loin , configure jette des avertissements du type:

configure: WARNING: pango 1.22.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 that generated files are newer than configure... done

J'en ai aussi eu un pour cairo

Il faut donc lancer configure en mode débogage:

make training
Need to reconfigure project, so there are no errors

Et vérifier config.log par grep ing pour pango (disons):

git clone git@github.com:tesseract-ocr/tesseract.git
git checkout tags/4.1.0

cd tesseract
./autogen.sh

brew install cairo pango icu4c autoconf libffi libarchive libpng
export PKG_CONFIG_PATH=\
$(brew --prefix)/lib/pkgconfig:\
$(brew --prefix)/opt/libarchive/lib/pkgconfig:\
$(brew --prefix)/opt/icu4c/lib/pkgconfig:\
$(brew --prefix)/opt/libffi/lib/pkgconfig:\
$(brew --prefix)/opt/libpng/lib/pkgconfig
./configure

make -j
sudo make install

# -> You should now have access to tesseract

make training
sudo make training-install

# -> You should now have access to the training tools: combine_tessdata, wordlist2dawg, dawg2wordlist, etc.

# If not, check /usr/local/bin/ is on your PATH, i.e.
export PATH=/usr/local/bin/:$PATH

C'est la ligne qui lance l'avertissement lorsque configure code > est exécuté.

Vous pouvez maintenant exécuter cette dernière ligne manuellement:

brew install cairo pango icu4c autoconf libffi libarchive libpng
export PKG_CONFIG_PATH=\
$(brew --prefix)/lib/pkgconfig:\
$(brew --prefix)/opt/libarchive/lib/pkgconfig:\
$(brew --prefix)/opt/icu4c/lib/pkgconfig:\
$(brew --prefix)/opt/libffi/lib/pkgconfig:\
$(brew --prefix)/opt/libpng/lib/pkgconfig
./configure

c'est ainsi que j'ai retracé la cause de libpng . (Dans mon cas, j'ai dû réinstaller / re link libpng en raison de divers conflits de longue durée associés à gnuplot / octave / aquaterm etc. etc.).

HTH quelqu'un


0 commentaires