【c++】c++ linux onnxruntime部署深度学习框架记录

linux环境安装

sudo apt install cmake 安装cmake

cmake --version 查看是否安装成功

cmake编写

基本流程

cmake_minimum_required(VERSION 3.0)
PROJECT(my_proj)
#定义路径变量
set(OpenCV_INCLUDE_DIRS /usr/local/include/opencv4/opencv2/)
set(OpenCV_LIBS 
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgcodecs.so
/usr/local/lib/libopencv_imgproc.so
)

# 包含目录
include_directories(
  ${OpenCV_INCLUDE_DIRS}
  ${CMAKE_SOURCE_DIR}/include
)
# 库目录

#看看路径
message(STATUS ${OpenCV_LIBS})
# add_executable(可执行文件名称 文件) 添加生成的可执行文件
add_executable(test_cmake_exe RDPPmain.cpp src/inference.cpp src/utils.cpp) 
# target_link_libraries(库文件名称/可执行文件名称 链接的库文件名称)
target_link_libraries(test_cmake_exe ${OpenCV_LIBS}) 

# find_package(OpenCV REQUIRED)
# if (OpenCV_FOUND)
#     message(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
#     message(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
# else ()
#     message(FATAL_ERROR "opencv Not Found!")
# endif (OpenCV_FOUND)


这边主要是需要安装三个依赖:opencv onnxruntime libtorch
安装不难,但是编写cmake还是有一点坑

opencv

配置opencv
set(OpenCV_INCLUDE_DIRS /usr/local/include/opencv4/opencv2/)
set(OpenCV_LIBS 
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgcodecs.so
/usr/local/lib/libopencv_imgproc.so
)

include_directories(
  ${OpenCV_INCLUDE_DIRS}find_package(OpenCV REQUIRED)

target_link_libraries(RDPP_cmake_exe ${OpenCV_LIBS}) 

libtorch

find_package(Torch REQUIRED PATHS "/home/z50035455/cppdependence/libtorch/share/cmake/Torch/")

include_directories(
  ${LIBTORCH_INCLUDE_DIRS}
)

find_package(Torch REQUIRED)
target_link_libraries(RDPP_cmake_exe ${TORCH_LIBRARIES})

onnxruntime

set(ONNXRUNTIME_INCLUDE_DIRS /home/z50035455/cppdependence/onnxruntime-linux-x64-1.15.1/include)
set(ONNXRUNTIME_LIBS /home/z50035455/cppdependence/onnxruntime-linux-x64-1.15.1/lib)
link_directories(ONNXRUNTIME_LIBS)
link_libraries(onnxruntime)

可以看到这里面onnxruntime和其他的安装不太一样,应该是动态和静态链接库的区别,target_link_libraries用了链接动态库,link_libraries链接静态库,且顺序是:链接静态库-add_executable-链接动态库

最终cmake文件

cmake_minimum_required(VERSION 3.5)
PROJECT(my_proj)

# 配置torch
find_package(Torch REQUIRED PATHS "/home/z50035455/cppdependence/libtorch/share/cmake/Torch/")
# 配置onnxruntime
set(ONNXRUNTIME_INCLUDE_DIRS /home/z50035455/cppdependence/onnxruntime-linux-x64-gpu-1.9.0/include)
set(ONNXRUNTIME_LIBS /home/z50035455/cppdependence/onnxruntime-linux-x64-gpu-1.9.0/lib)
link_directories(ONNXRUNTIME_LIBS)
link_libraries(onnxruntime)


# 配置opencv
set(OpenCV_INCLUDE_DIRS /usr/local/include/opencv4/opencv2/)
set(OpenCV_LIBS 
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgcodecs.so
/usr/local/lib/libopencv_imgproc.so
)



# 包含目录
include_directories(
  ${OpenCV_INCLUDE_DIRS}
  ${ONNXRUNTIME_INCLUDE_DIRS}
  ${LIBTORCH_INCLUDE_DIRS}
  ${CMAKE_SOURCE_DIR}/include
)


find_package(OpenCV REQUIRED)
find_package(Torch REQUIRED)


# 库目录
# add_library(
# #   ${LIBTORCH_LIBS}
#   ${ONNXRUNTIME_LIBS}

# )

# 添加源文件路径下所有源文件存放到变量中(*.c && *.cpp)
# SET(SOURCE_PATH ${PROJECT_SOURCE_DIR}/src)
# AUX_SOURCE_DIRECTORY(${SOURCE_PATH} SRC_LIST)
# add_executable(可执行文件名称 文件)
add_executable(RDPP_cmake_exe src/RDPPmain.cpp src/inference.cpp src/utils.cpp) 

# target_link_libraries(库文件名称/可执行文件名称 链接的库文件名称)
target_link_libraries(RDPP_cmake_exe ${TORCH_LIBRARIES})
target_link_libraries(RDPP_cmake_exe ${OpenCV_LIBS}) 




使用:

// 进入build路径
$   cmake ..
$   make
$   ./exe_name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值