Makefile学习(二)opencv编译

gkh 发布于 2020-08-03 21077 次阅读


之前先试了试最简单的Makefile环境配置,接下来就要增加oepncv后来编译简单的工程试试了。
一、编译opencv 先使用cmake直接进行编译,注意选择相关环境方便生成相关配置文件。
最后我的生成环境在/usr/local/lib64下。然后在pkgconfig文件夹下,有个opencv.pc的文件,这个文件可以通过pkg-config这个工具进行方便的配置。
image.png

vim /etc/profile
export PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH"

注意,这个地方的等号两边不能有空格,地址不包含文件。然后断开连接重新连接上即可。

先写个简单的转灰度的程序

#include <stdio.h>
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgproc/types_c.h"
using namespace cv;

//将图片灰度化并保存 
int main()
{
    Mat image;
    image = imread("./img.jpg");
    if(!image.data)
    {
        printf("No image data \n");
        return -1;
    }else{
        printf("read the image!\n");
    }
    Mat dst;
    cvtColor(image,dst,CV_BGR2GRAY);
    imwrite("dst.jpg", dst);
    printf("change success!\n");
    return 0;
}

因为使用命令行,所以就直接输入输出图片测试一下。
然后编写Makefile文件
因为是c++文件,需要引用g++编译器。

cc = g++
includes = test.o

INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
OBJECTS =test.o
SOURCE  =test.cpp

test:test.o
    g++ -o test $(OBJECTS) -I $(INCLUDE) $(LIBS)
test.o : 


clean:
    -rm $(OBJECTS) test

这样通过pkg-config即可连接相关库文件。底下编译参照第一篇即可。

然后运行测试一下

image.png
成功!

此作者没有提供个人介绍。
最后更新于 2020-08-03