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软件包。
posted @   澳大利亚树袋熊  阅读(2023)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示