opencv3.2在ubuntu16.04安装,测试程序错误分析

本文解决了在Ubuntu上使用OpenCV时遇到的链接错误问题。通过调整编译命令,确保头文件和库文件正确链接,成功解决了未定义引用的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencv 在ubuntu中已经安装完毕,但是在测试一个程序中disp_image.cpp出现了错误

test.cpp:(.text+0x8b):对‘cv::imread(cv::String const&, int)’未定义的引用
test.cpp:(.text+0x10e):对‘cv::namedWindow(cv::String const&, int)’未定义的引用
test.cpp:(.text+0x163):对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用
test.cpp:(.text+0x18b):对‘cv::waitKey(int)’未定义的引用
/tmp/ccIfvETd.o:在函数‘cv::String::String(char const*)’中:
test.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x4d):对‘cv::String::allocate(unsigned long)’未定义的引用
/tmp/ccIfvETd.o:在函数‘cv::String::~String()’中:
test.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14):对‘cv::String::deallocate()’未定义的引用
/tmp/ccIfvETd.o:在函数‘cv::String::operator=(char const*)’中:
test.cpp:(.text._ZN2cv6StringaSEPKc[_ZN2cv6StringaSEPKc]+0x18):对‘cv::String::deallocate()’未定义的引用
test.cpp:(.text._ZN2cv6StringaSEPKc[_ZN2cv6StringaSEPKc]+0x48):对‘cv::String::allocate(unsigned long)’未定义的引用
/tmp/ccIfvETd.o:在函数‘cv::Mat::~Mat()’中:
test.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39):对‘cv::fastFree(void*)’未定义的引用
/tmp/ccIfvETd.o:在函数‘cv::Mat::operator=(cv::Mat const&)’中:
test.cpp:(.text._ZN2cv3MataSERKS0_[_ZN2cv3MataSERKS0_]+0x115):对‘cv::Mat::copySize(cv::Mat const&)’未定义的引用
/tmp/ccIfvETd.o:在函数‘cv::Mat::release()’中:
test.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4b):对‘cv::Mat::deallocate()’未定义的引用
collect2: error: ld returned 1 exit status


分析:

错误中提示好像找不到库文件, 不过我也是加载了头文件和库文件,

g++ `pkg-config --cflags --libs  opencv` -o test test.cpp

测试  pkg-config --cflags --libs  opencv 也能输出包含头文件和库文件,

原来是在编译时的一个设置问题,要需要先编译再链接


g++ `pkg-config --cflags opencv` -o test test.cpp `pkg-config --libs opencv`

主要时刚接触opencv, linux的基础还很差, 以后需要加强学习


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值