Ubuntu下,Vscode调用anaconda虚拟环境中的opencv库

最近在学习如何在Ubuntu中搭建C++的开发环境,为了方便开发环境的移植,我用到了anaconda虚拟环境。本文主要介绍如何利用在Ubuntu下利用Anaconda、Vscode来开发C++,以调用anaconda虚拟环境中的opencv库为例子。
1、这是我Ubuntu系统下anaconda虚拟环境中安装的所有库,用到的有Cmake、Opencv。在终端中使用conda list查看虚拟环境中安装的库。
在这里插入图片描述
2、我的文件目录如下:
在这里插入图片描述
其中:CMakeLists.txt文件:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage main.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

其中,main.cpp文件:

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
   
   
    if ( argc != 2 )
    {
   
   
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }
    Mat image;
    image = imread( argv[1], 1 );
    
### 配置 VSCode 支持 OpenCV 的方法 #### 1. 安装必要的依赖项 为了在 Ubuntu 20.04 上配置 VSCode 并支持 OpenCV 开发环境,首先需要安装 OpenCV 及其相关依赖。可以通过以下命令完成安装: ```bash sudo apt update sudo apt install libopencv-dev python3-opencv ``` 这一步会自动下载并安装 OpenCV 及其头文件[^3]。 --- #### 2. 添加 OpenCV 路径至动态链接器缓存 为了让系统能够识别 OpenCV 的共享文件,需将其路径添加到系统的动态链接器缓存中。执行以下操作: 编辑 `/etc/ld.so.conf.d/opencv4.conf` 文件: ```bash sudo gedit /etc/ld.so.conf.d/opencv4.conf ``` 在该文件中添加如下内容(假设 OpenCV 已经被安装到了默认路径 `/usr/local/lib`): ``` /usr/local/lib ``` 保存后运行更新命令以使更改生效: ```bash sudo ldconfig ``` 此步骤确保了程序可以正确加载 OpenCV 动态][^[^25]。 --- #### 3. 创建 CMakeLists.txt 文件用于编译项目 对于 C++ 开发者来说,在 VSCode 中使用 OpenCV 进行开发通常涉及通过 `CMake` 构建工具来管理项目的构建过程。创建一个简单的 `CMakeLists.txt` 文件作为示例: ```cmake cmake_minimum_required(VERSION 3.10) project(MyOpenCVProject LANGUAGES CXX) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(main main.cpp) target_link_libraries(main ${OpenCV_LIBS}) ``` 上述脚本定义了一个名为 `main` 的可执行目标,并将 OpenCV 头文件目录和链接到该项目中[^1]。 --- #### 4. 设置 VSCode 的工作区配置 要让 VSCode 正确解析 OpenCV 的函数声明以及提供智能提示功能,需要设置好 `.vscode/c_cpp_properties.json` 和 `tasks.json` 文件。 ##### (a) 编辑 `c_cpp_properties.json` 这个 JSON 文件告诉 IntelliSense 如何查找包含的头文件位置。以下是模板内容: ```json { "configurations": [ { "name": "Linux", "includePath": [ "/usr/include/**", "/usr/local/include/**" ], "defines": [], "compilerPath": "/usr/bin/g++", "intelliSenseMode": "gcc-x64", "browse": { "path": [ "${workspaceFolder}", "/usr/include/", "/usr/local/include/" ] } } ], "version": 4 } ``` 这里指定了 OpenCV 的头文件所在的位置 `/usr/local/include`。 ##### (b) 编辑 `tasks.json` 这是用来描述如何调用外部工具链的任务配置文件。下面是一个基于前面提到的 CMakeLists.txt 执行构建的例子: ```json { "version": "2.0.0", "tasks": [ { "label": "build with cmake", "type": "shell", "command": "mkdir build && cd build && cmake .. && make", "group": { "kind": "build", "isDefault": true }, "problemMatcher": [] } ] } ``` 这样就可以一键触发整个工程的重新编译流程。 --- #### 5. 解决可能遇到的问题——Python 补全失效的情况 如果是在同一台机器上既做 Python 开发又做 C++ 开发,则可能会因为多个版本或者不同来源的 OpenCV 导致冲突现象发生。例如当存在 Miniconda 或 Anaconda 环境时,这些环境中预装有独立版本的 OpenCV 模块,它们可能导致 IDE 加载错误[^4]。 解决办法之一就是单独建立纯净虚拟环境专门服务于特定需求的应用场景;另一个则是调整 PATH 环境变量顺序优先指向官方发行版而非第三方扩展包所在的子目录结构下寻找资源实例化对象引用关系图谱等等复杂逻辑处理机制实现自动化部署方案设计思路分享给大家共同探讨学习进步成长之路越走越宽广! ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值