OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 3913|回复: 1

关于drawing.c的交叉编译

[复制链接]
发表于 2008-6-3 13:12:46 | 显示全部楼层 |阅读模式
安装流程最后有个测试编译drawing.c的命令

armv4l-unknown-linux-g++ `pkg-config --cflags --libs opencv`  drawing.c -o drawing

首先,armv4l-unknown-linux-g++这个东西和arm-linux-g++有什么区别?专门为v4l优化?我没有这个东西,用的是arm-linux-g++
其次,我查了一些资料,`pkg-config --cflags --libs opencv`其实就是执行里面的命令,在这里有点像一个宏,要这样执行必须要有PKG_CONFIG_PATH这个环境变量指向opencv参数配置文件,我是默认安装,文件在/usr/local/lib/pkgconfig/opencv.pc
所以我的环境配置为:
  >KG_CONFIG_PATH=/usr/local/lib/pkgconfig{PKG_CONFIG_PATH}
   >export PKG_CONFIG_PATH
测试命令:
  >pkg-config --cflags opencv
   >pkg-config --libs opencv
看看返回对不对,如果对的话就可以用pkg方式编译了,但是给出的命令我执行有错,不过经过试验,颠倒一下顺序就可以了
  >arm-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv`

编译通过,但是。。。。。。下载到开发版还是说找不到lib之类的:

./drawing: error while loading shared libraries: cannot open shared object file:
cannot load shared object file: No such file or directory


到底是什么原因?也不知道具体缺什么文件,真是头疼啊~~~~

我的安装配置:
./configure --host=arm-linux --without-gtk --without-carbon --without-v4l --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --disable-shared --disable-apps CXX=arm-linux-g++ CPPFLAGS='-I /usr/include'

还有一种配置:
./configure --host=arm-linux --without-gtk --without-carbon  --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --disable-shared --disable-apps CXX=arm-linux-g++

我想留v4l,但是这样就必须关掉CPPFLAGS='-I /usr/include'指向,不知道为什么。。。。
编译都能通过,下载到开发版的错误都一样。。。。郁闷~
回复

使用道具 举报

发表于 2008-7-6 14:39:08 | 显示全部楼层

关于drawing.c的交叉编译

你编译的目标程序里面含有动态库,但是从你的configure来看应该编译的静态库,所以猜测你/usr/local/opencv下的东西没有删除干净,建议你查看该目录下是否有动态库*.so结尾的文件,如果有应该全部删除,全留下.a结尾的库文件!!!编译的时候应该是默认先加载动态库,如果两者都有,即使编译安装了静态库,编译目标程序的时候也可能是用的动态库!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-3-29 10:13 , Processed in 0.011064 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表