The script on internet is both too old and has issues on compiling. I enhance it and it's suitable for XCode 7.3.1
#!/bin/sh # build.sh GLOBAL_OUTDIR="`pwd`/dependencies" LOCAL_OUTDIR="./outdir" LEPTON_LIB="`pwd`/leptonica-1.73" TIFF_LIB="`pwd`/tiff-4.0.6" TESSERACT_LIB="`pwd`/tesseract-3.04.01" IOS_BASE_SDK="9.3" IOS_DEPLOY_TGT="9.3" setenv_all() { # Add internal libs export CFLAGS="-O2 $CFLAGS -I$GLOBAL_OUTDIR/include -L$GLOBAL_OUTDIR/lib" export TOOLCHAINROOT=/Applications/Xcode731.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain export CXX="$TOOLCHAINROOT/usr/bin/clang" export CC="$TOOLCHAINROOT/usr/bin/clang" export LD=$TOOLCHAINROOT/usr/bin/ld export AR=$TOOLCHAINROOT/usr/bin/ar export AS=$TOOLCHAINROOT/usr/bin/as export NM=$TOOLCHAINROOT/usr/bin/nm export RANLIB=$TOOLCHAINROOT/usr/bin/ranlib export LDFLAGS="-L$SDKROOT/usr/lib -L/usr/local/lib -lz" # export LDFLAGS="-L/usr/lib/ -L$GLOBAL_OURDIR/lib -lz" export CPPFLAGS=$CFLAGS export CXXFLAGS=$CFLAGS } setenv_arm6() { unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS export DEVROOT=/Applications/Xcode731.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer export SDKROOT=$DEVROOT/SDKs/iPhoneOS$IOS_BASE_SDK.sdk export CFLAGS="-arch armv6 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT -I$SDKROOT/usr/include/" setenv_all echo "compile arm6" } setenv_arm7() { unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS export DEVROOT=//Applications/Xcode731.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer export SDKROOT=$DEVROOT/SDKs/iPhoneOS$IOS_BASE_SDK.sdk export CFLAGS="-arch armv7 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT -I$SDKROOT/usr/include/" setenv_all echo "compile arm7" } setenv_i386() { unset DEVROOT SDKROOT CFLAGS CC LD CPP CXX AR AS NM CXXCPP RANLIB LDFLAGS CPPFLAGS CXXFLAGS export DEVROOT=/Applications/Xcode731.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer export SDKROOT=$DEVROOT/SDKs/iPhoneSimulator$IOS_BASE_SDK.sdk export CFLAGS="-arch i386 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT" setenv_all echo "compile i386" } create_outdir_lipo() { echo "create_outdir_lipo" for lib_i386 in `find $LOCAL_OUTDIR/i386 -name "lib*\.a"`; do #lib_arm6=`echo $lib_i386 | sed "s/i386/arm6/g"` lib_arm7=`echo $lib_i386 | sed "s/i386/arm7/g"` lib=`echo $lib_i386 | sed "s/i386\///g"` #lipo -arch armv6 $lib_arm6 -arch armv7 $lib_arm7 -arch i386 $lib_i386 -create -output $lib lipo -arch armv7 $lib_arm7 -arch i386 $lib_i386 -create -output $lib done } merge_libfiles() { DIR=$1 LIBNAME=$2 cd $DIR for i in `find . -name "lib*.a"`; do $AR -x $i done $AR -r $LIBNAME *.o rm -rf *.o __* cd - } ####################### # LIBTIFF ####################### #cd $TIFF_LIB #rm -rf $LOCAL_OUTDIR #mkdir -p $LOCAL_OUTDIR/arm6 $LOCAL_OUTDIR/arm7 $LOCAL_OUTDIR/i386 # ##make clean 2> /dev/null ##make distclean 2> /dev/null ##setenv_arm6 ##./configure --host=arm-apple-darwin6 --enable-shared=no --prefix=`pwd`/$LOCAL_OUTDIR/arm6 ##make -j4 ##make install # #make clean 2> /dev/null #make distclean 2> /dev/null #setenv_arm7 #./configure --host=arm-apple-darwin7 --enable-shared=no --prefix=`pwd`/$LOCAL_OUTDIR/arm7 #make -j4 #make install # #make clean 2> /dev/null #make distclean 2> /dev/null #setenv_i386 #./configure --host=x86_64 --enable-shared=no --prefix=`pwd`/$LOCAL_OUTDIR/i386 #make -j4 #make install # ## since we're installing the libraries into LOCAL_OUTDIR/<arch>/lib ## create_outdir_lipo will try to put them in LOCAL_OUTDIR/lib #mkdir -p $LOCAL_OUTDIR/lib #create_outdir_lipo #mkdir -p $GLOBAL_OUTDIR/include && cp -rvf $LOCAL_OUTDIR/i386/include/*.h $GLOBAL_OUTDIR/include #mkdir -p $GLOBAL_OUTDIR/lib && cp -rvf $LOCAL_OUTDIR/lib/lib*.a $GLOBAL_OUTDIR/lib #cd .. ####################### # LEPTONLIB ####################### #cd $LEPTON_LIB #rm -rf $LOCAL_OUTDIR #mkdir -p $LOCAL_OUTDIR/arm6 $LOCAL_OUTDIR/arm7 $LOCAL_OUTDIR/i386 ## ##make clean 2> /dev/null ##make distclean 2> /dev/null ##setenv_arm6 ##./configure --host=arm-apple-darwin6 --enable-shared=no --disable-programs --without-zlib --without-libpng --without-jpeg --without-giflib --with-libtiff ##make -j4 ##cp -rvf src/.libs/lib*.a $LOCAL_OUTDIR/arm6 # #make clean 2> /dev/null #make distclean 2> /dev/null #setenv_arm7 #./configure --host=arm-apple-darwin7 --enable-shared=no --disable-programs --without-zlib --without-libpng --without-jpeg --without-giflib --with-libtiff #make -j4 #cp -rvf src/.libs/lib*.a $LOCAL_OUTDIR/arm7 # #make clean 2> /dev/null #make distclean 2> /dev/null #setenv_i386 #./configure --host=x86_64 --enable-shared=no --disable-programs --without-zlib --without-libpng --without-jpeg --without-giflib --with-libtiff #make -j4 #cp -rvf src/.libs/lib*.a $LOCAL_OUTDIR/i386 # #create_outdir_lipo #mkdir -p $GLOBAL_OUTDIR/include/leptonica && cp -rvf src/*.h $GLOBAL_OUTDIR/include/leptonica #mkdir -p $GLOBAL_OUTDIR/lib && cp -rvf $LOCAL_OUTDIR/lib*.a $GLOBAL_OUTDIR/lib #cd .. ####################### # TESSERACT-OCR (v3) ####################### cd $TESSERACT_LIB rm -rf $LOCAL_OUTDIR mkdir -p $LOCAL_OUTDIR/arm6 $LOCAL_OUTDIR/arm7 $LOCAL_OUTDIR/i386 #make clean 2> /dev/null #make distclean 2> /dev/null #setenv_arm6 #export LDFLAGS="$LDFLAGS -ltiff" #bash autogen.sh #echo $CC ##export LIBLEPT_HEADERSDIR=/usr/local/include #./configure --host=arm-apple-darwin6 --enable-shared=no LIBLEPT_HEADERSDIR=$GLOBAL_OUTDIR/include/ ##./configure --host=arm-apple-darwin6 --enable-shared=no --prefix=`pwd`/$LOCAL_OUTDIR/arm7/ --with-extra-libraries=/usr/local/lib LIBLEPT_HEADERSDIR=/usr/local/include #make -j4 #for i in `find . -name "lib*.a"`; do cp -rvf $i $LOCAL_OUTDIR/arm6; done #merge_libfiles $LOCAL_OUTDIR/arm6 libtesseract_all.a #echo "Buidl for arm6" make clean 2> /dev/null make distclean 2> /dev/null setenv_arm7 export LDFLAGS="$LDFLAGS -ltiff" bash autogen.sh export LIBLEPT_HEADERSDIR=/usr/local/include ./configure --host=arm-apple-darwin7 --enable-shared=no --prefix=/usr/local/ --with-extra-libraries=/usr/local/lib make -j4 for i in `find . -name "lib*.a" | grep -v arm`; do cp -rvf $i $LOCAL_OUTDIR/arm7; done merge_libfiles $LOCAL_OUTDIR/arm7 libtesseract_all.a echo "Buidl for arm7" make clean 2> /dev/null make distclean 2> /dev/null setenv_i386 export LDFLAGS="$LDFLAGS -ltiff" bash autogen.sh export LIBLEPT_HEADERSDIR=/usr/local/include ./configure --host=x86_64 --enable-shared=no --host=i386 --prefix=/usr/local/ --with-extra-libraries=/usr/local/lib make -j4 for i in `find . -name "lib*.a" | grep -v arm`; do cp -rvf $i $LOCAL_OUTDIR/i386; done merge_libfiles $LOCAL_OUTDIR/i386 libtesseract_all.a echo "Buidl for i386" create_outdir_lipo mkdir -p $GLOBAL_OUTDIR/include/tesseract tess_inc=( api/apitypes.h api/baseapi.h ccmain/thresholder.h ccstruct/publictypes.h ccutil/errcode.h ccutil/genericvector.h ccutil/helpers.h ccutil/host.h ccutil/ndminx.h ccutil/ocrclass.h ccutil/platform.h ccutil/tesscallback.h ccutil/unichar.h ) for i in "${tess_inc[@]}"; do cp -rvf $i $GLOBAL_OUTDIR/include/tesseract done mkdir -p $GLOBAL_OUTDIR/lib && cp -rvf $LOCAL_OUTDIR/lib*.a $GLOBAL_OUTDIR/lib make clean 2> /dev/null make distclean 2> /dev/null rm -rf $LOCAL_OUTDIR cd .. echo "Finished!"
相关推荐
ros cross compile
修改过的将大部分github资源转为指向Gitee上的镜像的一个编译脚本,同时外网的下载资源也转化为指向了ftp://localhost/xxxx ,使用前可先自行下载这些...然后替换当中的cross_compile_ffmpeg.sh为本文件,运行,即可。
You need at least one of these or Tesseract will not work. Note that tesseract-x.xx.tar.gz unpacks to the tesseract-ocr directory. tesseract-x.xx.<lang>.tar.gz unpacks to the tessdata directory which...
High Level Language Test on aarch64 GNU/Linux &High Level Language Test on x86_64 GNU/Linux
因为本人的嵌入式系统中安装DropBear来提供SSH服务,但DropBear没有sftp服务。所以就用OpenSSH编译出了一个sftp-server,把它单独放到系统里是可以使用的。前提是系统中有ssh服务。
libjingle,cross_compile
Compile SQLite using the cross-compiler such as arm-linux-gcc first, get sqlite-3.3.6.tar.gz from www.sqlite.org unzip it, #tar -zxvf sqlite-3.3.6.tar.gz change into the sqlite-3.3.6 directory cd ...
交叉编译ntp的脚本及资源,使用的海思的交叉编译器,可以替换成其他的
教你交叉編譯tcl 及 Linphone 到ARM的平台
该文件夹包含交叉编译OpenCV所需要的编译器和依赖库文件,下载即用。内容包含编译器arm-2014.05,依赖库ffmpeg、libjpeg、libpng、libx264、libxvid、yasm、zlib。需要编译
compile
经过查询大量的资料,我自己总结的 交叉编译 java虚拟机(jamvm 1.54)以及库(classpath 0.98) 到ARM9. 有详细的步骤,本文档目的是为了让同学们少走点弯路,做个存档,方便自己也方便别人。 象征性收 1 分。
crosscompiler.pdf
cross-compiled madplay-0.15.2b libmad-0.15.1b libid3tag-0.15.1b zlib-1.2.3
从Mac到Linux交叉编译Rust 如何将Rust从macOS交叉编译到Linux x86_64-unknown-linux-gnu的示例背景/最初动机截至2020年11月,我macOS笔记本电脑上的使用来迭代Kubernetes集群更改,然后再将其应用于生产集群。...
Basics.Of.Compile.Design
Design Compile是synopsys的综合软件,它的功能是把RTL级的代码转化为门级网表。资源适合DC的 初学者
javacompile
一个简单的msbuild命令行使用demo,可直接编译项目,无论是解决方案(sln)还是csproj或者vbproj。msbuild真的非常好,有了它就不用打开笨重的visual studio了!如需实际使用,请执行填写项目相对路径(绝对路径也可以)...
cross compile for arm