2010-02-25 3 views
8

J'ai compilé Tesseract pour l'utiliser dans Xcode suivant: http://iphone.olipion.com/cross-compilation/tesseract-ocrTesseract Exemple pour Iphone

-je obtenir le fichier .a, importer comme cadre dans le projet d'iphone, et mettre à jour le chemin de recherche d'en-tête pour les fichiers d'en-tête de Tesseract.

Alors maintenant, j'ai besoin d'un exemple simple pour commencer. Je ne trouve rien dans http: // code.google.com/p/tesseract-ocr/ ou par googling. Tout le monde peut m'aider à me donner un point de départ (un extrait de code) ..?! Merci beaucoup!

- plus tard, je trouve ce code:

#include "baseapi.h"


TessBaseAPI::InitWithLanguage(NULL, NULL, language, NULL, false, 0, NULL); char* text = TessBaseAPI::TesseractRect(imagedata, bytes_per_pixel, bytes_per_line, 0, 0, width, height); TessBaseAPI::End();


mais quand je tente de compiler pour l'appareil (seulement insérer instruction INCLUDE sans le code ci-dessus) je reçois ce qui suit:

erreur: erreur de syntaxe avant avertissement « PAGE_RES » : par défaut de type à « int » dans la déclaration d'avertissement « PAGE_RES » : définition de données n'a pas de type ou de classe de stockage

et ainsi de suite avec BLOCK_LIST, IMAGE etc.


si la compilation pour le simulateur je reçois

erreur: attendu '=', '', '' asm » ou 'attribut' avant 'PAGE_RES' et ainsi de suite avec BLOCK_LIST, IMAGE et TessBaseAPI

--- Autre mise à jour: J'ai trouvé la solution pour un problème d'inclusion: Où l'include doit être renommé l'extension file.m en .mm car nous devons dire à xcode que nous devons utiliser l'objectif-c et C++ ensemble.

+0

Salut, vous avez dit que vous traversez compilé tesseract en utilisant ce blog. Je veux juste savoir ce que l'on entend par source le fichier de configuration? –

+0

Savez-vous comment gérer le fichier de langue. c'est-à-dire où conserver les fichiers .traindata? Et seulement le fichier .traindata assez? ou avons-nous besoin de tous les autres fichiers 7/8? – karim

+0

Pourquoi ne pas le compiler en asm.js? Cela aurait l'avantage supplémentaire de pouvoir fonctionner théoriquement * n'importe quel * navigateur, à condition qu'il ne manque pas de mémoire. – NoBugs

Répondre

2

vous devez mettre à jour SDKROOT, CPPFLAGS et CXX les variables . Par exemple, voici la partie pertinente de mon script de compilation, modifié pour fonctionner avec 4.0:

export SDKROOT=$DEVROOT/SDKs/iPhoneOS4.0.sdk 
export PATH=$DEVROOT/usr/bin:$PATH 
# Set up relevant environment variables 
export CPPFLAGS="-I$SDKROOT/usr/lib/gcc/arm-apple-darwin10/4.0.1/ 
include/ -I$SDKROOT/usr/include/ -miphoneos-version-min=4.0" 
export CFLAGS="$CPPFLAGS -arch armv6 -pipe -no-cpp-precomp -isysroot 
$SDKROOT" 
export CPP="$DEVROOT/usr/bin/cpp $CPPFLAGS" 
export CXXFLAGS="$CFLAGS" 

emplacement de la bibliothèque dynamique générée par le package Unix

LIBPATH=$LIBFILE.dylib 
    LIBNAME=`basename $LIBPATH` 

export LDFLAGS="-L$SDKROOT/usr/lib/ -Wl,- 
dylib_install_name,@executable_path/$LIBNAME" 

bibliothèque statique qui sera généré pour ARM

LIBPATH_static=$LIBFILE.a 
LIBNAME_static=`basename $LIBPATH_static` 
# TODO: add custom flags as necessary for package 
./configure CXX=$DEVROOT/usr/bin/arm-apple-darwin10-g++-4.0.1 CC= 
$DEVROOT/usr/bin/arm-apple-darwin10-gcc-4.0.1 LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin 
+1

Je n'ai trouvé nulle part dans les docs d'apple sur l'env. vars. , tel que ; -miphoneos-version-min = 4.0. Aussi le drapeau personnalisé; -host = arm-apple-darwin. Où est ce document documenté? – RyBolt