lib_clapack.a(dlasyf.o): could not read symbols: File in wrong format---- 交叉编译opencv2.0遇到的错误解决
2012-08-22 09:12
796 查看
首先下载opencv2.0的源码http://www.pudn.com/downloads471/sourcecode/graph/opencv/detail1972436.html,opencv从2.1以后(包括2.1)无论安装到x86还是移植都必须使用cmake,移植的时候用cmake有时候又不能成功。无奈只能用opencv2.0,它还保留着./configure
、make 、make install三部曲安装的模式。安装过程可以参考我以前的博文:/article/1652324.html。这里我再收录一个make的时候出现的错误。下载后的源码解压缩,然后进到解压缩后的目录。注意下面的操作最好切换到root用户,否则有可能搜索不到交叉编译器的路径。
第一步,cofigure的配置为:
./configure --host=arm-linux --without-gtk --without-carbon --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --enable-shared --disable-apps CXX=arm-linux-g++ CPPFLAGS=-I/usr/local/arm/4.5.1/arm-none-linux-gnueabi/include
LDFLAGS=-L/usr/local/arm/4.5.1/arm-none-linux-gnueabi/libc/lib --with-v4l2 --prefix=/usr/local/arm/opencv --libdir=/usr/local/arm/opencv/lib -includedir=/usr/local/arm/opencv/include
这里关键的是CPPFLAGS、 LDFLAGS的路径,也就是交叉编译器的路径一定要社队。另外,--prefix、--libdir、-includedir是用来设置交叉编译安装的opencv的.so文件和include文件所存放的位置。确保--prefix=/usr/local/arm/opencv
这里的opencv文件夹存在,要提前建好。另外的lib和include不需要提前建。
第二步,输入make
这里要注意提前将png、jpg、zlib之类的用到的库安装,ubuntu下apt-get install,fedora下yum
install。这是make成功的前提。在make的时候,有的机器会报错如下:
could not read symbols: File in wrong format这句是关键,google了一圈无解。经我研究发现,这是linux系统未装libtool导致的,因此一定要安装libtool。重新将opencv的源码解压至一个新的文件夹,进去后重新./configure 之后是make,错误就不见了。
第三步,make install。
细节参考/article/1652324.html这里吧,不重复了。
、make 、make install三部曲安装的模式。安装过程可以参考我以前的博文:/article/1652324.html。这里我再收录一个make的时候出现的错误。下载后的源码解压缩,然后进到解压缩后的目录。注意下面的操作最好切换到root用户,否则有可能搜索不到交叉编译器的路径。
第一步,cofigure的配置为:
./configure --host=arm-linux --without-gtk --without-carbon --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --enable-shared --disable-apps CXX=arm-linux-g++ CPPFLAGS=-I/usr/local/arm/4.5.1/arm-none-linux-gnueabi/include
LDFLAGS=-L/usr/local/arm/4.5.1/arm-none-linux-gnueabi/libc/lib --with-v4l2 --prefix=/usr/local/arm/opencv --libdir=/usr/local/arm/opencv/lib -includedir=/usr/local/arm/opencv/include
这里关键的是CPPFLAGS、 LDFLAGS的路径,也就是交叉编译器的路径一定要社队。另外,--prefix、--libdir、-includedir是用来设置交叉编译安装的opencv的.so文件和include文件所存放的位置。确保--prefix=/usr/local/arm/opencv
这里的opencv文件夹存在,要提前建好。另外的lib和include不需要提前建。
第二步,输入make
这里要注意提前将png、jpg、zlib之类的用到的库安装,ubuntu下apt-get install,fedora下yum
install。这是make成功的前提。在make的时候,有的机器会报错如下:
../3rdparty/.libs/lib_clapack.a(dlasyf.o): could not read symbols: File in wrong format collect2: ld returned 1 exit status make[2]: *** [libcxcore.la] 错误 1 make[2]:正在离开目录 `/home/carson/download/OpenCV-2.0.0/src' make[1]: *** [all-recursive] 错误 1 make[1]:正在离开目录 `/home/carson/download/OpenCV-2.0.0' make: *** [all] 错误 2lib_clapack.a(dlasyf.o):
could not read symbols: File in wrong format这句是关键,google了一圈无解。经我研究发现,这是linux系统未装libtool导致的,因此一定要安装libtool。重新将opencv的源码解压至一个新的文件夹,进去后重新./configure 之后是make,错误就不见了。
第三步,make install。
细节参考/article/1652324.html这里吧,不重复了。
相关文章推荐
- 解决vsftpd编译时的错误:could not read symbols: File in wrong format
- 解决vsftpd编译时的错误:could not read symbols: File in wrong format
- GCC 源码编译 mpc mprf gmp 不用make(否则会有lib/libgmp.so: could not read symbols: File in wrong format等错误)
- Apache 安装过程中出错/usr/lib/libexpat.so: could not read symbols: File in wrong format的解决办法
- 关于 could not read symbols: File in wrong format 问题的解决方案
- /libexpat.so: could not read symbols: File in wrong format
- [linux+openscada+qt]could not read symbols: File in wrong format
- /libexpat.so: could not read symbols: File in wrong format
- could not read symbols: File in wrong format
- could not read symbols: File in wrong format
- Apache编译安装:/usr/lib/libexpat.so: could not read symbols解决方法
- htslib库安装过程中的编译错误,libz.a: could not read symbols: Bad value
- /usr/lib/libexpat.so: could not read symbols解决方法
- 解决Android studio编译时遇到AAPT err(Facade for): libpng error: Not a PNG file 错误
- /usr/lib/libexpat.so: could not read symbols解决方法
- lib64SDL_intermediates/lib64SDL.a: could not read symbols: File format not recognized
- Could not read symbols:Linux/UNIX系统下编译时,常见的一类报错信息解决方法
- ADS编译错误Error: Fatal L6002U:Could not open file:.....解决办法
- 解决NDK交叉编译 selected processor does not support ARM mode libtheora的错误
- /usr/lib/libcxcore.so.2.1: could not read symbols: Invalid operation 解决方法