Ubuntu16.04 opencv环境搭建(C++)

Ubuntu下vscode跑opencv程序环境搭建。

目录

1 ubuntu查看opencv版本

2 下载opencv包

3 依赖配置

4 进入安装包内执行

5 配置环境变量

6 VScode配置-下载c++扩展

7 编译运行helloworld

8 在vscode中配置opencv环境

9 运行结果


1 ubuntu查看opencv版本

pkg-config --modversion opencv

2 下载opencv包

 官网下载地址:https://opencv.org/releases/

3 依赖配置

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libvtk7-dev libjpeg-dev libtiff5-dev libopenexr-dev libtbb-dev

4 进入安装包内执行

mkdir build
cd build
cmake 
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.5.1 ..
make -j4
sudo make install

执行结果:

5 配置环境变量

gedit ~/.bashrc

加入:

#opencv4.8.1
export PKG_CONFIG_PATH=/usr/local/opencv4.8.1/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv4.8.1/lib

后执行

source ~/.bashrc

6 VScode配置-下载c++扩展

7 编译运行helloworld

在vscode中创建c++文件,helloworld,在编译运行后将自动生成json文件,要运行opencv,需要修改这几个json文件。他们的作用是类似于形成

g++ -std=c++11 main.cpp -o main `pkg-config --cflags --libs opencv`

的编译命令。

8 在vscode中配置opencv环境

需要引入opencv库到编译环境中,修改位置:

c_cpp_properties.json中:

加入安装opencv库的位置。

task.json中:

加入库的链接。上面这行等同于分别链接下面这些库,因为有.pc文件。

gemini对pc文件的介绍:

`pc` 文件(pkg-config 文件)在引入三方库时扮演着至关重要的角色,它提供了有关库的信息,以便编译器和链接器可以找到并正确使用它。

`.pc` 文件通常包含以下信息:

- 库的名称和版本
- 库的描述
- 库的头文件和库文件的位置
- 库的依赖关系(其他必需的库)
- 库的编译和链接标志

当您使用 `pkg-config` 命令时,它会读取 `.pc` 文件并提取这些信息,然后将其传递给编译器和链接器。这简化了库的编译和链接过程,因为您不必手动指定所有这些信息。

例如,如果您要使用 OpenCV 库,您可以使用以下命令:


  g++ -std=c++11 main.cpp `pkg-config --cflags --libs opencv`

`pkg-config` 命令将读取 OpenCV 的 `.pc` 文件并提取编译和链接 OpenCV 所需的所有信息。然后,它会将这些信息传递给 `g++` 编译器,以便它可以正确编译和链接您的代码。

**注意:**

- `.pc` 文件通常安装在 `/usr/lib/pkgconfig` 目录中。
- 您可以使用 `pkg-config --list-all` 命令查看系统上安装的所有 `.pc` 文件。
- 如果您找不到特定库的 `.pc` 文件,您可能需要手动指定编译和链接标志。

这里可能遇到问题,看起来正常的代码编译报错,是因为vscode没配置c++11。

OpenCV 4.8.1 **不支持** C++98 标准

OpenCV 4.8.1 要求使用 C++11 或更高版本。这是因为 OpenCV 4.8.1 使用了 C++11 中引入的许多特性,例如:

- 智能指针(`std::unique_ptr` 和 `std::shared_ptr`)
- 范围 for 循环
- lambda 表达式

如果您需要在 C++98 上使用 OpenCV,则需要使用较旧的版本,例如 OpenCV 3.4.x。

**注意:**

即使您能够在 C++98 上编译 OpenCV 4.8.1,也可能会遇到运行时错误,因为 OpenCV 4.8.1 依赖于 C++11 的某些特性。

两个方案,用老版本和配置vscode使用c++11编译。

9 运行结果

  • 124
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值