lib_clapack.a(dlasyf.o): could not read symbols: File in wrong format---- 交叉编译opencv2.0遇到的错误解决

原创 2012年08月22日 09:12:19

       首先下载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三部曲安装的模式。安装过程可以参考我以前的博文:http://blog.csdn.net/yanzi1225627/article/details/7524698。这里我再收录一个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] 错误 2
lib_clapack.a(dlasyf.o): could not read symbols: File in wrong format这句是关键,google了一圈无解。经我研究发现,这是linux系统未装libtool导致的,因此一定要安装libtool。重新将opencv的源码解压至一个新的文件夹,进去后重新./configure 之后是make,错误就不见了。

第三步,make install。

细节参考http://blog.csdn.net/yanzi1225627/article/details/7524698这里吧,不重复了。


相关文章推荐

/usr/lib/libexpat.so: could not read symbols解决方法

编译apache或者apache出品的log4cxx等软件时,有可能报"/usr/lib/libexpat.so: could not read symbols: File in wrong form...
  • cserchen
  • cserchen
  • 2011年08月02日 18:31
  • 11724

Could not read symbols解决方法

Could not read symbols 陈运文Could not read symbols:Linux/UNIX系统下编译时,常见的一类报错信息。  通常情况下,该编译报错信息之前会给出出现错误...
  • cserchen
  • cserchen
  • 2010年04月22日 15:03
  • 45393

Could not read symbols:Linux/UNIX系统下编译时,常见的一类报错信息解决方法

----陈运文   通常情况下,该编译报错信息之前会给出出现错误的静态库(.a结尾文件)、或动态库(.so结尾文件),该报错的基本原因是当前编译器无法对库文件进行正确的解析 Could not...
  • edonlii
  • edonlii
  • 2012年12月30日 10:35
  • 7686

解决vsftpd编译时的错误:could not read symbols: File in wrong format

编译vsftpd时,出现could not read symbols: File in wrong format错误提示,后搜寻相关资料,是因为vsftpd的一个安装文件没有考虑到64位平台库文件位置...

could not read symbols: File in wrong format collect2: ld 返回 1 make: *** [all] 错误 1

could not read symbols: File in wrong format collect2: ld 返回 1 make: *** [all] 错误 1

关于 could not read symbols: File in wrong format 问题的解决方案

最近有个项目需要用到第三方的lib,而在它们的官网上面下载了linux版本的so 于是根据它们提供的文档来调用so里面的函数,用ndk将so编译到我自己的jni lib 中去。但是编译是过了,链接...

【工控机开发】OpenCV compile error /lib/libopencv_highgui.so could not read symbols: File in wrong format

折腾了一天的bug,从http://stackoverflow.com/questions/26902541/opencv-compile-error-linking-cxx-shared-libra...

/libexpat.so: could not read symbols: File in wrong format

/libexpat.so: could not read symbols: File in wrong format 今天在Centos 5.5 64位的机器上源码编译graphviz发生了错误 ...

Cmake 配置问题

出现以下问题: 之前一直是报undefined reference to __print_Log 打印log的类找不到。因为Cmake配置错误,不知道之前的错误是什么样子了。 最终的配置在后面。E...

Android sdk 接入时遇到的错误解决方案

CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. 解决...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lib_clapack.a(dlasyf.o): could not read symbols: File in wrong format---- 交叉编译opencv2.0遇到的错误解决
举报原因:
原因补充:

(最多只允许输入30个字)