找回密码
 立即注册
收起左侧

eclipse下opencv程序报错

2
回复
8304
查看
[复制链接]

尚未签到

来源: 2014-5-19 20:28:37 显示全部楼层 |阅读模式
2Qter豆
小弟有一二维码识别的程序,在vs上配置opencv后,运行通过了。现在在eclipse下配置好opencv后(这一点可以确定),运行此文件,却总是报错:
**** Rebuild of configuration Debug for project mrkdet ****
**** Internal Builder is used for build               ****
g++ -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -O0 -g3 -Wall -c -fmessage-length=0 -oMarkerDetector.o ../MarkerDetector.cpp
g++ -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -O0 -g3 -Wall -c -fmessage-length=0 -oMarker.o ../Marker.cpp
g++ -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -O0 -g3 -Wall -c -fmessage-length=0 -omain.o ../main.cpp
../main.cpp: In function 'int main()':
../main.cpp:46:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../main.cpp:53:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
g++ -L/usr/local/lib -L/usr/local/opencv/lib -omrkdet main.o MarkerDetector.o Marker.o -lopencv_cv   -lopencv_cxcore -lopencv_highgui
/usr/bin/ld: cannot find -lopencv_cv  
/usr/bin/ld: cannot find -lopencv_cxcore
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 20566  ms.  

大概是说找不到opencv_cv和opencv_cxcore的.so文件,后来在库文件中因为确实没有找到这两个.so文件,但highgui.so是有的。
一开始以为是opencv文件没有用cmake编译好,结果又cmake了几个opencv的版本 2.4.3和 2.4.9(这个已是最新版本),结果依旧没有找到以上两个文件。
突发奇想去查看vs2010下配置的opencv2.4.4,结果发现也没有那两个文件(window下应该是.dll文件),说明可能opencv配置之后的动态库里应该本来就是没有的。
问题是:为什么在windows下用VS2010不需要这两个动态文件就能正常运行,而到了linux下用eclipse却要求这两个动态文件呢?
希望能有人解答一下!!!

更具体的图文描述:
http://bbs.csdn.net/topics/390790276?page=1#post-397415004

















最佳答案

查看完整内容

去了你给的链接看了一下,发现几个问题: 1.cv和cxcore完全可以弃用,你可以参照opencv的reference,低版本的c风格的api函数都已经有对应的c++风格的api重新封装过了,所以你在include的时候完全#include就足矣,类似include这个一个道理。 2.编译提示找不到cxcore和cv的lib,是因为再高版本的opencv库中cv.h cxcore.h这样的头文件实质是指向了opencv2下面的。所以还是回到上面那个问题,旧版本的风格弃用! 3.看你想在编写arm下跑 ...
回复

使用道具 举报

累计签到:331 天
连续签到:1 天
2014-5-19 20:28:38 显示全部楼层
去了你给的链接看了一下,发现几个问题:
1.cv和cxcore完全可以弃用,你可以参照opencv的reference,低版本的c风格的api函数都已经有对应的c++风格的api重新封装过了,所以你在include的时候完全#include<opencv2/opencv.hpp>就足矣,类似include<QtGui>这个一个道理。
2.编译提示找不到cxcore和cv的lib,是因为再高版本的opencv库中cv.h cxcore.h这样的头文件实质是指向了opencv2下面的。所以还是回到上面那个问题,旧版本的风格弃用!
3.看你想在编写arm下跑的程序,那不如直接手写makefile,库位置库内容的定义玖一目了然了。
回复

使用道具 举报

累计签到:331 天
连续签到:1 天
2014-5-23 08:59:50 显示全部楼层
从库上看cv和cxcore是比较旧的版本,那时候还没有用cmake管理。高版本的opencv才开始使用cmake管理,包括源码编译以及应用程序编译。我的cmake只在编译源码库的时候用到,后续的管理用makefile直接来。
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了