一.编译安装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

ubuntu16.04编译安装c++ opencv与vscode配置debug相关推荐

  1. Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书

    Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书 安装 Nginx 安装依赖 $ apt-get update $ apt-get install build-e ...

  2. ubuntu16.04 编译安装ruby环境、onegadget

    目录 Method-1 Method-2 Method-1 getshell的过程中需要用到onegadget来简化做题,因此需要ruby的环境进行安装onegadget.一般来说ubuntu18以上 ...

  3. ubuntu16.04编译安装boost

    1.官网下载安装包并解压 https://www.boost.org/ tar -zxvf boost_1_69_0.tar.gz -C /opt/ 2.切换到root用户编译安装 ./bootstr ...

  4. Ubuntu16.04 编译安装intel SGX Driver,SDK,PSW并验证环境201905

    我的环境 阿里云ECS主机, 1 vCPU 4 GiB (I/O优化) 抢占性实例(便宜) Ubuntu 16.04 root用户完成以下所有操作.其他用户出现问题需要自己解决 时间2019年5月gi ...

  5. ubuntu16.04 编译opencv4和opencv_contrib

    ubuntu16.04 编译opencv4和opencv_contrib 下载源码 安装最新的cmake 使用cmake-gui配置cmake文件 make && install 添加 ...

  6. 在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)

    在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑) 一 下载 先去github上下载对应的opencv版本和opencv_contrib版本,我下载的是opencv4. ...

  7. ubuntu16.04 下安装Opencv2.4.9

    ubuntu16.04 下安装Opencv2.4.9 OpenCV的源码download from:  https://sourceforge.net/projects/opencvlibrary/? ...

  8. Ubuntu16.04编译RK3399:make kernel.img error

    RK3399开源资料: http://www.t-firefly.com/doc/product/info/id/100.html 1.问题: ubuntu16.04编译内核Kernel出现错误:   ...

  9. wepe 装linux ubuntu,Ubuntu16.04下安装Wechat的实现方法

    Ubuntu16.04下安装Wechat 很久没写博客了,前两天电脑因为teamviewer不了,原因显示是libqt5gui5版本过低,研究了一波更新,卸载了libqt5gui5,和它的依赖qtba ...

最新文章

  1. ansible playbook lookups组件
  2. 使用Entity Framework code first, migration
  3. Sqlite使用技巧集锦
  4. NOIP信息奥赛--1995“同创杯”初中复赛题题解(一)
  5. 程序员广交四海朋友群
  6. logistic regession 损失函数
  7. hotspot 默认 gc_默认HotSpot最大直接内存大小
  8. 德勤预判:2022技术七大趋势
  9. simulink显示多个数据_如何在 Simulink 中使用 PID Tuner 进行 PID 调参?
  10. linux软件包管理解析,linux学习笔记_09_软件包管理解析.doc
  11. 计算最小公倍数LCM
  12. Pycharm中更改镜像源
  13. 解耦模式--服务定位器
  14. win7自带的xps viewer很好用
  15. 如何进行MDM的产品测试
  16. 【Java】多人协同在线编辑Excel源代码及部署包
  17. Wordpress用文件记录访客 IP和访问量
  18. MVC模式与如何实现struts MVC模式
  19. 模型预测控制(MPC)的公式推导与理解 (转)
  20. OJDBC驱动版本区别 [ojdbc14.jar,ojdbc5.jar跟ojdbc6.jar的区别]

热门文章

  1. centos mysql jar 驱动包_JDBC连接MySQL的数据库
  2. 流量运营数据产品最佳实践——美团旅行流量罗盘
  3. 论文浅尝|简单高效的知识图谱表示学习负样本采样方法
  4. 论文浅尝 - ICLR2020 | 具有通用视觉表示的神经机器翻译
  5. 论文浅尝 | AAAI2020 - 基于生成对抗的知识图谱零样本关系学习
  6. 肖仰华 | 基于知识图谱的用户理解
  7. 《ACL 2020丨哈工大多领域端到端任务型对话系统》
  8. tensorflow1、2会话、变量、feed、fetch、最小二乘法
  9. python replace()
  10. “哪里有人喜欢孤独,不过是害怕失望罢了”———村上春树《东尼泷谷》观后感...