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软件包。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM