Opencv undefined reference to `cv::imread() Ubuntu编译
Ubuntu下编译一个C++文件,C++源程序中使用了opencv,opencv的安装没有问题,但是在编译的过程中出现如下错误:
undefined reference to `cv::imread(std::string const&, int)'
undefined reference to `cv::noArray()'
undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
undefined reference to `cv::imwrite(std::string const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)'
undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
undefined reference to `cv::waitKey(int)'
...
undefined reference to `cv::Mat::deallocate()'
...
网上查了下资料,大概说opencv的静态编译库没有链接到本程序中(也不知道对不对,望大家指正),于是找啊找啊,终于找到一个有用的,记录一下:
在terminal下运行命令: g++ getmask.cpp -o getmask `pkg-config opencv --cflags --libs` // 包含、链接参数一定要放在后面,其实就是在编译C++程序后面加上(`pkg-config opencv --cflags --libs`)
编译成功后生成getmask可执行文件,接着运行命令:./getmask 就能得到结果啦。
附上我的源程序:
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
string img_filename;
int head_num;
int posx,posy;
cv::Point pt;
vector<Point> coordinate;
vector<vector<Point> > coordinates;
ifstream infile("scene01.txt");
Mat img = imread("scene01.jpg",);
//namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
//imshow("MyWindow", img);
//waitKey(0);
cv::Mat locMask(img.rows,img.cols,CV_8UC1,cv::Scalar());
//imshow("locMask",locMask);
while (infile >> img_filename >> head_num) {
for(int i = ; i< head_num;i++) {
infile >> posx >> posy;
pt = Point(posx,posy);
coordinate.push_back(pt);
}
coordinates.push_back(coordinate);
}
//cout<<coordinate.size()<<endl;
//cout<<coordinates.size()<<endl;
for(int i=;i<coordinates.size();i++)
cout<<coordinates[i]<<" ";
drawContours(locMask,coordinates,-,cv::Scalar::all(), CV_FILLED);
imwrite("mask01.jpg",locMask);
imshow("locMask",locMask);
waitKey();
return ;
}
我的文件截图:
版权声明:本文为博主原创文章,欢迎转载,转载请注明原文地址、作者信息。
Opencv undefined reference to `cv::imread() Ubuntu编译的更多相关文章
- 「caffe编译bug」.build_release/lib/libcaffe.so: undefined reference to cv::imread
转自:https://www.douban.com/note/568788483/ CXX/LD -o .build_release/tools/convert_imageset.bin.build_ ...
- Opencv3.0: undefined reference to cv::imread(cv::String const&, int)
使用opencv,编译出错: undefined reference to cv::imread(cv::String const&, int) 自opencv3.0之后,图像读取相关代码在i ...
- test.cpp:(.text+0xc0): undefined reference to `cv::imread(std::string const&, int)'
opencv报错: test.cpp:(.text+0xc0): undefined reference to `cv::imread(std::string const&, int)' te ...
- caffe: compile error : undefined reference to `cv::imread(cv::String const&, int)' et al.
when I compile caffe file : .build_debug/lib/libcaffe.so: undefined reference to `cv::imread(cv::Str ...
- undefined reference to cv::imread(cv::String const&, int)
.build_release/lib/libcaffe-nv.so: undefined reference to cv::imread(cv::String const&, int)' .b ...
- error: undefined reference to `cv::imread(std::string const&, int)'
g++ main.cpp -o main `pkg-config --libs --cflags opencv`注意--libs的位置https://stackoverflow.com/questio ...
- openCV中 libopencv-nonfree-dev的安装: undefined reference to `cv::initModule_nonfree()'
今天照着一起做RGB-D SLAM (3) , 程序会出现以下的错误: cv::initModule_nonfree(); /home/yhzhao/slam/src/detectFeature ...
- .build_release/lib/libcaffe.so: undefined reference to `cv::VideoCapture::set(int, double)'
CXX/LD -o .build_release/tools/convert_imageset.bin.build_release/lib/libcaffe.so: undefined referen ...
- undefined reference to `cv::VideoCapture
出现opencv链接的问题原因: 1. 路径设置不正确,caffe会优先搜索Makefile.config里面的环境设置 2. anaconda2装的opencv和配置的opencv路径不一致 比如, ...
随机推荐
- [macOS] error when brew updating
I want to update the brew, then run brew update but unluckly, i got these error /usr/local/Library/b ...
- Python之模块导入
import sys #import module (.py)import functools #名词空间 functoolsprint(functools) print("-------- ...
- Openstack-Namespaces
介绍OpenStack neutron使用Linux网络命名空间来避免物理网络和虚拟网络间的冲突,或者不同虚拟网络间的冲突. 网络命名空间就是一个独立的网络协议栈,它有自己的网络接口,路由,以及防火墙 ...
- WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性和超链接点击弹出警示框
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值方式: href="地址?key=v ...
- 在HTML5的 input:file 上传文件类型控制 遇到的问题
1.input:file 属性的介绍 先瞅代码吧 <form> <input type="file" name="pic" accept=& ...
- 根据MAC地址获取网络地址及ZDP_NwkAddrReq函数的用法
1..对于设备需要获取本设备的网络地址和MAC地址: NLME_GetShortAddr()——返回本设备的16位网络地址 NLME_GetExtAddr()—— 返回本设备的64位扩展地址 2.使 ...
- jmeter插件使用说明
jmeter作为一个开源的接口性能测试工具,其本身的小巧和灵活性给了测试人员很大的帮助,但其本身作为一个开源工具,相比于一些商业工具(比如LoadRunner),在功能的全面性上就稍显不足. 这篇博客 ...
- 1.1:Get Started with Unity Shaders
文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 第1章开始正式进入Unity Shader的学习. 什么是Shader 本 ...
- Flutter从零到∞学习笔记
有状态widget:StatefulWidget和无状态widget:StatelessWidget 前者不需要实现Widget build(BuildContext context). 具体的选择取 ...
- C#调用endtask
原文最早发表于百度空间2009-03-23 写这个小工具主要是因为自动化测试那边反馈了一个问题和endtask有关,结果写完之后发现这个问题从程序外部测试不了……c#调endtask主要也是用DllI ...