Ubuntu 环境下 CPP文件中 加入第三方库 如OpenCV库、PCL库

本文介绍如何在CMakeLists.txt中配置OpenCV和Pcl库,包括查找库、设置包含路径及链接库等步骤,并展示了cpp文件中如何正确引入这些库的头文件及使用命名空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CMakeLists.txt 配置文件 添加第三方库:

需要使用OpenCV 库,用于声明并定义Mat类型的图片。

主要添加三类信息 :

1、 找包。 FIND_PACKAGE(OpenCV 3.0.0 REQUIRED COMPONENTS core highgui calib3d)
2、包括路径。 INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} )
3、添加链接库的库名。  TARGET_LINK_LIBRARIES (BuildDam ${PCL_LIBRARIES}  protobuf ${OpenCV_LIBS} )


cpp文件中: 包含头文件、加入命名空间
1、引入头文件

#include <opencv2/opencv.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
2、添加命名空间
using namespace cv;


引入Pcl库

Pcl库的源码编译安装 见文章  http://blog.youkuaiyun.com/qing101hua/article/details/53509585

CMakeLists.txt 配置文件:

1、找包。  FIND_PACKAGE(PCL 1.7 REQUIRED)

2、包括路径。 INCLUDE_DIRECTORIES(  ${PCL_INCLUDE_DIRS} )
3、添加链接路径。  LINK_DIRECTORIES(${PCL_LIBRARY_DIRS} )
4、    ADD_DEFINITIONS(${PCL_DEFINITIONS} )
5、添加链接库库名。 TARGET_LINK_LIBRARIES (BuildDam ${PCL_LIBRARIES}  protobuf ${OpenCV_LIBS} )

CPP文件:

1、头文件

#include <pcl/io/obj_io.h>
#include <pcl/point_types.h>
using namespace Nest3D;













<think>好的,我需要帮用户在NVIDIA Jetson平台上安装和配置OpenCVPCL,用于计算机视觉开发。首先,我得回忆一下Jetson系统的特点,它通常运行基于Ubuntu的Linux系统,比如L4T。用户之前可能已经有一些配置经验,比如安装libopencv-dev,但需要更详细的步骤。 首先,安装OpenCV。用户提到的通过apt安装libopencv-dev可能不够,因为可能需要特定版本或从源码编译以获得更多功能,比如contrib模块。引用3中提到需要安装cmake-gui和mingw-w64,不过在Jetson上可能不需要mingw,因为那是针对跨平台编译到Windows的。所以步骤应该是先安装依赖项,比如cmake、必要的开发工具,然后下载OpenCV和contrib的源码,用CMake配置,编译安装。要注意Jetson的ARM架构,可能需要调整编译参数,比如使用CUDA加速。 接下来是安装PCLPCL通常可以通过apt安装,但同样可能需要源码编译以支持特定功能。需要确保安装的PCL版本与OpenCV兼容,并且支持Jetson的硬件加速。用户可能需要安装依赖项如VTK、Eigen等。 然后配置环境变量,确保CMake能找到OpenCVPCL文件。可能需要更新PKG_CONFIG_PATH和LD_LIBRARY_PATH。 验证部分,用户需要编写测试代码,用CMakeLists.txt链接这两个,确保能正确编译运行。比如读取图像和点云,进行简单的处理。 可能遇到的问题包括编译时的内存不足,Jetson的内存较小,可以增加交换空间。另外,CUDA的支持可能需要检查OpenCV编译时的配置是否正确启用了CUDA。 最后生成相关问题,考虑用户可能的后续需求,比如性能优化、应用案例、多传感器融合等。</think>### NVIDIA Jetson 平台 OpenCVPCL 集成指南 #### 一、系统准备 1. **更新系统与安装基础工具** ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake git unzip pkg-config -y ``` 确保已安装 `cmake-qt-gui`(参考引用[3]的CMake配置方法)[^3]。 2. **安装 CUDA 与 cuDNN(预装验证)** Jetson 系统通常预装 CUDA,检查版本: ```bash nvcc --version ``` --- #### 二、OpenCV 安装(源码编译) 1. **下载源码与依赖** ```bash wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip unzip opencv.zip && unzip opencv_contrib.zip ``` 安装依赖项: ```bash sudo apt install libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libgtk2.0-dev libcanberra-gtk-module -y ``` 2. **CMake 配置与编译** ```bash mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.5/modules \ -D WITH_CUDA=ON \ -D CUDA_ARCH_BIN=5.3 \ # Jetson架构参数 -D ENABLE_NEON=ON \ -D BUILD_EXAMPLES=OFF .. make -j$(nproc) sudo make install ``` --- #### 三、PCL 安装 1. **APT 安装基础** ```bash sudo apt install libpcl-dev pcl-tools -y ``` 若需源码编译(支持最新特性): ```bash git clone https://github.com/PointCloudLibrary/pcl.git cd pcl && mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=Release .. make -j4 # 根据Jetson内存调整线程数 sudo make install ``` 2. **安装依赖项** ```bash sudo apt install libvtk7-dev libboost-all-dev libeigen3-dev libflann-dev -y ``` --- #### 四、环境验证 1. **OpenCV 测试** ```cpp #include <opencv2/opencv.hpp> int main() { cv::Mat img = cv::imread("test.jpg"); cv::imshow("Display", img); cv::waitKey(0); return 0; } ``` CMake 配置: ```cmake cmake_minimum_required(VERSION 3.10) project(OpenCV_Test) find_package(OpenCV REQUIRED) add_executable(test_opencv test.cpp) target_link_libraries(test_opencv ${OpenCV_LIBS}) ``` 2. **PCL 测试** ```cpp #include <pcl/point_types.h> #include <pcl/io/pcd_io.h> int main() { pcl::PointCloud<pcl::PointXYZ> cloud; cloud.width = 100; cloud.height = 1; cloud.points.resize(cloud.width * cloud.height); pcl::io::savePCDFileASCII("test.pcd", cloud); return 0; } ``` CMake 配置: ```cmake find_package(PCL REQUIRED) include_directories(${PCL_INCLUDE_DIRS}) add_executable(test_pcl test_pcl.cpp) target_link_libraries(test_pcl ${PCL_LIBRARIES}) ``` --- #### 五、常见问题解决 1. **编译内存不足** 增加交换空间: ```bash sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfile sudo mkswap /swapfile && sudo swapon /swapfile ``` 2. **CUDA 加速异常** 检查 OpenCV 编译日志确认 `WITH_CUDA=ON` 是否生效,并验证 GPU 使用: ```bash nvidia-smi # 运行OpenCV程序时查看GPU负载 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值