ubuntu16.04编译安装c++ opencv与vscode配置debug

一.编译安装c++ opencv

1.下载zip包

本文安装的是opencv3.4.3,下载链接,以Sources方式下载zip包.

2.安装依赖

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

3.执行命令

cd ~/opencv-3.4.3  # 进入opencv文件夹
mkdir build # 创建build文件夹
cd build # 进入build文件夹#cmake指令,如果没有特殊要求建议就选择默认的就可以
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  
#如果安装anconda遇到Makefile:160: recipe for target 'all' failed的报错,改为执行以下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_SHARED_LIBS=OFF -D WITH_OPENMP=ON -D ENABLE_PRECOMPILED_HEADERS=OFF ..make -j7 # 多线程执行make任务# 最后一步,安装库文件
sudo make install#安装完成

如果没报错说明安装成功.

pkg-config --modversion opencv

查看版本号

二.vscode配置进行debug

更详细的配置,参考这篇文章

1.代码

main.cpp

#include<opencv2/opencv.hpp>
#include<iostream>
#include<string>
#include"a.h"
using namespace std;
int main(){  cout<<"CV_VERSION"<<CV_VERSION<<endl;const char* imgPath = "/home/fzh/AI/C_learn/datastruct/opencv/test.jpg";cv::Mat img = cv::imread(imgPath);cout<<"==main img.cols=="<<img.cols<<endl;cout<< "==main img.rows=="<<img.rows<<endl; int a = 1;int b = 1;int c;  c = a + b;cout<<"=====hahhahhahhah===="<<endl;cout<<"===c=:=="<<c<<endl;A *A1 = new A();A1->readImg(imgPath);delete A1;A1 = nullptr;return 0;
}   

a.h

#ifndef A_H_
#define A_H_class A
{public:A(){}~A(){}void readImg(const char* path);};#endif

a.cpp

#include<opencv2/opencv.hpp>
#include <iostream>
#include "a.h"using namespace std;
void A::readImg(const char* path)
{cv::Mat img =  cv::imread(path);cout<<"==A img.cols=="<<img.cols<<endl;cout<< "==A img.rows=="<<img.rows<<endl;}

CMakeLists.txt 

cmake_minimum_required(VERSION 2.6)project(opencv)add_definitions(-std=c++11)set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE Debug)set(OpenCV_DIR "/usr/local/include")
find_package(OpenCV 3.4.3 REQUIRED PATHS "/usr/local")
include_directories(OpenCV_INCLUDE_DIRS)
# set(OpenCV_DIR "/usr/include")
# find_package(OpenCV 2.4.9.1 REQUIRED PATHS "/usr/include")
# include_directories(OpenCV_INCLUDE_DIRS)add_executable(main ${PROJECT_SOURCE_DIR}/main.cpp a.cpp)
target_link_libraries(main ${OpenCV_LIBS})add_definitions(-O2 -pthread)

2.vscode配置

tasks.json

{"tasks": [{"type": "shell","label": "C/C++: g++ build active file","command": "g++","args": [// "-g", "-std=c++11", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}","-g", "-std=c++11", "${fileDirname}/*.cpp", "-o", "${fileDirname}/${fileBasenameNoExtension}",// "-I", "/usr/include",// "-I", "/usr/include/opencv",// "-I", "/usr/include/opencv2","-I", "/usr/local/include","-I", "/usr/local/include/opencv","-I", "/usr/local/include/opencv2","-L", "/usr/local/lib","-l", "opencv_imgcodecs","-l", "opencv_imgproc",  "-l", "opencv_dnn","-l", "opencv_features2d","-l", "opencv_flann","-l", "opencv_highgui",                     "-l", "opencv_imgproc","-l", "opencv_ml","-l", "opencv_objdetect","-l", "opencv_photo","-l", "opencv_shape","-l", "opencv_stitching","-l", "opencv_superres","-l", "opencv_videoio","-l", "opencv_video","-l", "opencv_videostab","-l", "opencv_core"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}],"version": "2.0.0"
}

launch.json

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "g++ - Build and debug active file","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: g++ build active file","miDebuggerPath": "/usr/bin/gdb"}]
}

c_cpp_properties.json

{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**",// "/usr/include/opencv2",// "/usr/include/opencv",// "/usr/include","/usr/local/include/opencv2","/usr/local/include/opencv","/usr/local/include"],"defines": [],"compilerPath": "/usr/bin/gcc","cStandard": "gnu11","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

3.出现一个bug

在main.cpp设置断点下按f5,开始debug

这里最开始出现一个bug,ImportError:lib***.so--cannot open shared object file: No such file or directory

通过设定软链接方式解决的:

3.1 找到文件

     find  /  -name  lib**.so   (缺失的动态链接库)  

3.2 建立软链接

     ln -s  /path/to/lib**.so   /usr/lib

 3.3 sudo ldconfig

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【年终盘点】2018年十大新型机器人

来源&#xff1a;网易智能摘要&#xff1a;2018年&#xff0c;机器人行业迎来了丰收——随着新型机器和高级人工智能的出现&#xff0c;各类机器人都在各自的领域都取得了重大的进步&#xff0c;例如家用机器人、工业机器人、医疗机器人、生物机器人和玩具机器人。今年&#xf…

leetcode hot100(第二部分) + python(c++)

50-1. 乘积最大子数组 思路1:找到状态转移方程: maxf[i]:表示在i处最大连乘数 minf[i]:表示在i处最小连乘数 maxf[i] max(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1]) minf[i] min(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1]) #maxf[i]:表示在i处最大连乘数 #minf[i]…

自动驾驶真的会来得那么快吗:关于自动驾驶的7个疑问

来源&#xff1a;资本实验室自动驾驶汽车的研发已经成为全球热潮。无论是像谷歌、百度、Uber这样的互联网巨头&#xff0c;还是丰田、通用、福特这样的老牌汽车制造商&#xff0c;都在以大量的人力、资金向自动驾驶领域下注。然而&#xff0c;无论是Waymo推出首个自动驾驶汽车商…

git的一些操作

一.git工作原理/流程: workspace: (除去.git)看见的目录。 版本库(Repository)&#xff1a;工作区有一个隐藏目录.git就叫版本库。其中版本库里面存了很多东西&#xff0c;最重要的就是stage(暂存区)&#xff0c;还有Git为我们自动创建了第一个分支master,以及指向master的一…

从GE数字化业务大调整看工业互联网未来

来源&#xff1a;财经杂志2018年&#xff0c;工业互联网依然是制造业数字化转型中最热的话题&#xff0c;“工业4.0”、“中国制造2025”这些制造业的热门话题在热度上已经明显让位于工业互联网。工信部官网信息显示&#xff0c;从1月国务院发布《关于深化“互联网先进制造业”…

clion卸载+clion连接docker编写trt程序

一.卸载 # 删除安装文件夹 1.rm -r clion-2021.1.1 # 删除配置文件 2.sudo rm -rf ~/.config/JetBrains/CLion2021.1 二.连接docker 由于本地机器没有gpu,学习trt加速模型很难受,经过一段时间摸索和请教别人,最后采用clion连接docker进行trt学习,下载安装很简单,这里主要介绍…

2019 半导体领袖新年展望(一)| 半导体行业观察

来源&#xff1a;半导体行业观察摘要&#xff1a;为了让大家更好地了解半导体厂商2019年的规划&#xff0c;我们整理了三十多家国内外产业链供应商参与了这次讨论&#xff0c;给大家呈现一个完整的2019半导体面面观。过去一年的半导体产业波谲云诡&#xff01;曾经供不应求的被…

String和STL的一些基础知识

一.STL&#xff08;标准模板库&#xff09;的六大组件:容器&#xff0c;算法&#xff0c;迭代器&#xff0c;仿函数&#xff0c;适配器&#xff08;配接器&#xff09;&#xff0c;空间配置器 1.容器:各种数据结构&#xff0c;vector,list,deque,unordered_set&#xff1b; 2.…

机器学习如何借鉴人类的视觉识别学习?让我们从婴幼儿的视觉学习说起

来源&#xff1a;AI科技评论当只需要把大规模标注图像数据库塞给深度神经网络就可以得到高准确率的物体分类模型之后&#xff0c;有很多研究人员开始考虑更深入的问题&#xff1a;人类的视觉识别学习过程是怎样的&#xff1f;以及既然人类视觉系统与计算机视觉系统之间表现出了…

ggplot2绘图入门系列之四:再说散点图

1 色彩和形状的控制 数据特征不仅可以用坐标来表示&#xff0c;也可以用不同的色彩或形状来表示。仍以mpg数据集为例&#xff0c;所用到的变量有cty&#xff08;城市中行驶距离&#xff09;,hwy&#xff08;高速路行驶距离&#xff09;,displ&#xff08;排量大小&#xff09;,…

2019年物联网发展的六大趋势

来源&#xff1a;资本实验室摘要&#xff1a;在人类发展史上&#xff0c;通讯技术的每次革命性突破&#xff0c;都会让我们离完全的数字化社会越来越近。当现金变成微信和支付宝&#xff1b;当逛商场变成逛淘宝&#xff1b;当叫出租车变成叫滴滴&#xff1b;当“您好”变成“您…

gdb基础知识

文档 一.gdb打印demo.cpp运行结果 在CMakeLists.txt中添加 set(CMAKE_BUILD_TYPE Debug) 然后make以后通过gdb filename进入该文件的gdb调试模式,同时使用shell 就可以像终端一样使用shell命令。 例子: demo.cpp #include <iostream> #include <vector> #i…

重磅!罗振宇跨年演讲:扎心5问

来源&#xff1a;亿欧网摘要&#xff1a;我们不断追问“这个世界到底是什么样子的&#xff1f;”今年罗振宇在“2018时间的朋友跨年演讲”中给出的解题思路是&#xff1a;小趋势。2018年12月31日晚&#xff0c;“2018时间的朋友跨年演讲”在深圳春茧体育馆拉开帷幕。从4000人的…

C++ opencv的一些基础知识

一&#xff0e;基础知识 1.cv::mat type返回数字对应的类型 C1, C2, C3, C4 指的是通道(Channel)数&#xff0c;比如3通道的float 32&#xff1a; cv::Mat M5 cv::Mat::zeros(2, 3, CV_32FC(3)); 2.at方法数据类型 知道通道数和每个通道数据类型的情况下&#xff0c;指定给…

难以想象!未来十年,颠覆性技术将带来这些社会变革……

作者&#xff1a;张一清来源&#xff1a;财新《中国改革》摘要&#xff1a;技术飞速进步改变生活&#xff0c;人类是否准备好迎接它们给生活、制度和文化带来的挑战&#xff1f;现代社会&#xff0c;技术的更新速度永远比你想得更快。当感叹技术的飞速进步&#xff0c;当憧憬技…

C++模板的一些基础知识

一.函数模板 可看出就是将函数返回类型和形参类型去掉。 1.代码1 #include <iostream> #include <vector> #include <string> #include <algorithm> #include <map> #include <fstream> using namespace std;template<typename T>…

芯片热!价格战!争落地!2018年人工智能发展回忆录

来源&#xff1a;网易智能摘要&#xff1a;2018年是非同寻常的一年&#xff0c;对于人工智能行业而言更是如此。在这一年&#xff0c;几乎所有科技公司宣布全面拥抱AI&#xff0c;在这一年&#xff0c;巨头深入布局&#xff0c;挤压着创业者的想象空间&#xff0c;在这一年&…

如何附加数据库

转载于:https://www.cnblogs.com/tanqianqian/p/5975072.html

a16z基金:顶级风投眼中的2019技术趋势

来源&#xff1a;资本实验室位于硅谷的顶级风险投资公司——安德森霍洛维兹基金&#xff08;Andreessen Horowitz&#xff0c;简称a16z&#xff09;在近期提出了他们将在2019年遵循的五大技术趋势&#xff0c;涉及生物医疗、数字货币与区块链、人工智能等技术领域。从字面上来看…

新算力下的2019 AI

来源&#xff1a;乐晴智库精选▌AI步入下半场IT每十年一阶段形成六大阶段每一轮科技革命都会带来新的赢家基础设施—通用平台—应用层的发展路径每一轮科技革命均印证基础设施先行的发展路径基础设施与通用平台易形成寡头垄断应用层的发展愈来愈依托于生态云计算厂商的资本开支…