请教一个关于ubuntu下openCV程序编译出错的问题

fredshao 2012-09-08 10:07:18
源代码

#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc,char **argv)
{
Mat image;
image = imread(argv[1],1);

if(argc != 2 || !image.data)
{
cout << "No image data\n";
return -1;
}

namedWindow("Display Image",CV_WINDOW_AUTOSIZE);
imshow("Display Image",image);
waitKey(0);
return 0;
}



编译安装了openCV,现在在/usr/share/include 目录下有opencv 和opencv2两个文件夹

第一次用g++ DisplayImage.cpp -o DisplayImage 使命编译,提示没有 cv.h 这个文件
然后网上有人说用 g++ `pkg-config opencv --libs --cflags opencv` DisplayImage.cpp -o DisplayImage 命令,但是出现了下面的错误
好像是命名空间的问题,求解决方法。

/tmp/cc1ounoJ.o: In function `main':
DisplayImage.cpp:(.text+0x6c): undefined reference to `cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
DisplayImage.cpp:(.text+0x10c): undefined reference to `cv::namedWindow(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
DisplayImage.cpp:(.text+0x13a): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
DisplayImage.cpp:(.text+0x16e): undefined reference to `cv::imshow(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)'
DisplayImage.cpp:(.text+0x190): undefined reference to `cv::waitKey(int)'
/tmp/cc1ounoJ.o: In function `cv::Mat::~Mat()':
DisplayImage.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39): undefined reference to `cv::fastFree(void*)'
/tmp/cc1ounoJ.o: In function `cv::Mat::operator=(cv::Mat const&)':
DisplayImage.cpp:(.text._ZN2cv3MataSERKS0_[cv::Mat::operator=(cv::Mat const&)]+0x111): undefined reference to `cv::Mat::copySize(cv::Mat const&)'
/tmp/cc1ounoJ.o: In function `cv::Mat::release()':
DisplayImage.cpp:(.text._ZN2cv3Mat7releaseEv[cv::Mat::release()]+0x47): undefined reference to `cv::Mat::deallocate()'
collect2: ld 返回 1
...全文
2999 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
白菜选手 2014-07-29
  • 打赏
  • 举报
回复
g++ `pkg-config opencv --cflags --libs opencv` -o DisplayImage DisplayImage.cpp -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_gpu -lopencv_ts -lopencv_video -lopencv_objdetect -lopencv_ml -lpthread 我用这个OK的~
congleetea123456 2013-12-21
  • 打赏
  • 举报
回复
楼主,我也又同样的问题,分享一下嘛!!!!!!!!!!!
bingquancpp 2013-05-08
  • 打赏
  • 举报
回复
运行上面的命令之前,要将 opencv2 这个目录复制到 opencv下,这俩个目录都在 /usr/local/include/ 下。
bingquancpp 2013-05-08
  • 打赏
  • 举报
回复
用下面的这个命令是可以编译通过的,但有俩个警告 arm-linux-g++ -o opencv_test.o test.c -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lpthread -lrt 刚刚学习opencv
ypf50351989 2012-12-07
  • 打赏
  • 举报
回复
楼主,我也遇到了同样的问题,求指教
mfkauko 2012-12-05
  • 打赏
  • 举报
回复
引用 1 楼 wxyztuv 的回复:
OK,解决了
请问如何解决的呢?我现在是用jni调用,编译的时候出现这个错误了,不知道如何解决啊
黑色键盘手 2012-09-13
  • 打赏
  • 举报
回复
先把openCV依赖的东西装上,比如GTK等等。
fredshao 2012-09-13
  • 打赏
  • 举报
回复
OK....
ri_aje 2012-09-10
  • 打赏
  • 举报
回复
看错误是没有链接 opencv 的库,自己找找在那里,然后 -l 进来就好了。
赵4老师 2012-09-10
  • 打赏
  • 举报
回复
cmake
xmu_才盛 2012-09-09
  • 打赏
  • 举报
回复
我也是 图像学的。。。 还真不知道opencv支持 linux。。。。
xmu_才盛 2012-09-09
  • 打赏
  • 举报
回复
求解决方案。。。
我也不想用windows了。。。
fredshao 2012-09-09
  • 打赏
  • 举报
回复
OK,解决了

64,700

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧