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