Linux下编译运行opencv程序

安装opencv。
sudo apt-get install libcv-dev
或者使用源码安装
https://blog.csdn.net/xukai871105/article/details/40988101

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main (int argc, char **argv)
{
    Mat image, image_gray;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR );
    if (argc != 2 || !image.data) {
        cout << "No image data\n";
        return -1;
    }
   
    cvtColor(image, image_gray, CV_RGB2GRAY);
    namedWindow("image", CV_WINDOW_AUTOSIZE);
    namedWindow("image gray", CV_WINDOW_AUTOSIZE);
   
    imshow("image", image);
    imshow("image gray", image_gray);
   
    waitKey(0);
    return 0;
}

使用下面简单命令:
$ gcc main.cpp -o test pkg-config --cflags --libs opencv

程序报错找不到fopen,原因在vs 里面自动添加头文件,所以没有报错,添加下面:
#iclude<stdio.h>
error: ‘>>’ should be ‘> >’ within a nested template argument

vector<vector> point_list;
加空格改为vector< vector > point_list;

或者使用下面脚本
【makefile】

INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = test.cpp
# 目标文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可执行文件
TARGET = test
$(TARGET):$(OBJECTS)
    g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
    g++ -c $(SOURCES)
clean:
    rm $(OBJECTS) $(TARGET)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
    g++ -I $(INCLUDE) -o $@ -c $<

【简要说明】
通过pkg-config --cflags opencv 获得opencv相关头文件路径,通过pkg-config --libs opencv获得opencv扩展库
更多makefile知识请查看——【 Linux学习笔记——例说makefile 索引博文】
【编译并执行】

解决vim写的Makefile报错:Makefile: missing separator(did you mean TAB instead of 8 spaces?). Stop.
通常我们为了使vim作为更强大的IDE,会对vimrc文件加以配置(如将TAB键自动转换为4个空白键)。
但正是由于将tab键转换为n个空白键,使得用vim编写的Makefile中不存在tab键(即“\t”)了。恰恰Makefile中以tab键作为命令行的起始标记。所以现在找到了报错的原因,即tab键被替换为空白键了。
解决方法是:
在 /etc/vim/vimrc中加入下列配置行(也可在HOME目录下的vimrc中配置):

autocmd FileType make set noexpandtab

make

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风口上的传奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值