ubuntu系统下使用CMAKE配置libtorch及opencv
一、准备
在安装opencv库之前,需要预先安装一些必要的依赖项:
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
如果没有安装这些依赖项,会出现opencv库不能正常运行的状况!
二、配置opencv
可以查看:Linux下安装OpenCV4(适用于Ubuntu等) - 简书 (jianshu.com)
但是opencv4有可能不能与libtorch同时运行,所以建议下载opencv3的版本
下载好opencv3后,对其进行解压,并创建子文件夹release。在终端输入以下命令:
cmake -DCMAKE_BUILD_TYPE=Release \ -DOPENCV_GENERATE_PKGCONFIG=ON \ -DCMAKE_INSTALL_PREFIX=/usr/local ..
接着make一下:
make -j7
sudo make install
此后,需要把opencv写入系统的环境变量中,使他随时可以调用:
cd /etc/ld.so.conf.d/ sudo touch opencv4.conf sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'
最后,更新一下:
sudo ldconfig
三、配置libtorch
可以查看:(49条消息) Ubuntu18.04 配置 LibTorch_不忘初心~-CSDN博客_ubuntu安装libtorch
只需要对其进行解压即可,下载的libtorch一定要注意cuda版本。
四、编写项目的cmakelist
可以查看:Opencv+LibTorch安装 - shandianchengzi - 博客园 (cnblogs.com)
cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project(dtp) find_package(OpenCV REQUIRED) message(STATUS "OpenCV library status:") message(STATUS " version: ${OpenCV_VERSION}") message(STATUS " libraries: ${OpenCV_LIBS}") message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}") find_package(Torch REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) include_directories(${TORCH_INCLUDE_DIRS}) add_executable(dtp cuda_yoloV5_43_car_lane.cpp) target_link_libraries(dtp "${TORCH_LIBRARIES}" ${OpenCV_LIBS} ) set_property(TARGET dtp PROPERTY CXX_STANDARD 14)
cmake_minimum_required-表明了所要的cmake的最低版本。
project-命名项目名称 我命名为dtp。
find_package-系统开始查找这些库,通过findXXX.cmake文件或搜索DIR下的config.cmake文件。然后会为一些变量(如OpenCV_VERSION)赋值。
message-打印(并不必)
include_directories-将指定目录添加到编译器的头文件搜索路径。
add_executable-添加可执行文件,这个文件最好包含main函数。会生成可执行文件
add_library-添加可执行文件,之后会生成库文件。需要注明关键字。
target_link_libraries-链接库,需要注意顺序。
set_property-为项目命名一个属性。
使用命令cmake -DCMAKE_PREFIX_PATH=/xx/libtorch 指明libtorch的安装位置,就可以开始编译,否则找不到libtorch。
最后cmake .
cmake --build . --config开始编译。
五、部分cmake命令解析
cd 移动至某一文件下。
cmake .. 使用cmakelist当前生成makefile文件,编译。
make 以makefile文件为基础构建程序 。
mkdir 建立一个子目录
sudo 以系统管理者权限进行某项命令。
apt 用于在ubuntu、debain和相关Linux发行上安装、更新、删除和管理deb软件包。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了