【CMake|TensorRT】Windows下使用CMake编译项目,yolov8-seg为例子

代码仓库:

yolov8 trt

CMakeLists.txt解析

  • 首先指定cmake支持的最大版本,只要版本号小于我们下载的cmake版本即可:
cmake_minimum_required(VERSION 3.20)
  • 指定我们项目的名称,随便取什么名字:
project (yolov8-seg)
  • 添加编译器标志,使用c++14的标准:
add_definitions(-std=c++14)
  • 定义API_EXPORTS预处理器宏,用于导出动态链接库时使用:
add_definitions(-DAPI_EXPORTS)
  • 设置c++标准为14
set(CMAKE_CXX_STANDARD 14)
  • 设置构建类型为Release版本(优化版本):
set(CMAKE_BUILD_TYPE Release)

下面就是关键了:

  • 如果我们的代码中用到cuda的,需要设置cuda编译器的路径:
set(CUDA_COMPILER_PATH "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe")
  • 设置TensorRT安装目录的路径:
set(TENSORRT_PATH "C:/TensorRT-8.6.1.6")
  • CUDA头文件包含以及库目录添加到搜索路径中
find_package(CUDA REQUIRED) 
include_directories(${CUDA_INCLUDE_DIRS}) 
link_directories(${CUDA_TOOLKIT_ROOT_DIR}/lib/x64)
  • TensorRT头文件包含以及库目录添加到搜索路径中
include_directories(${TENSORRT_PATH}/include)
link_directories(${TENSORRT_PATH}/lib)
  • opencv头文件包含以及库目录添加到搜索路径中
find_package(OpenCV REQUIRED
            CONFIG
            PATHS C:/opencv/build/x64/vc16/lib)
include_directories(${OpenCV_INCLUDE_DIRS})
if (OpenCV_FOUND) 
    include_directories(${OpenCV_INCLUDE_DIRS}) 
    link_directories(${OpenCV_LIBRARY_DIRS}) 
    add_definitions(${OpenCV_DEFINITIONS}) 
else() 
    message(FATAL_ERROR "OpenCV not found!") 
endif()
  • 包含项目中自定义的头文件和源文件:
include_directories(${PROJECT_SOURCE_DIR}/include/)
file(GLOB_RECURSE SRCS ${PROJECT_SOURCE_DIR}/src/*.cpp)
  • 添加名为yolov8-seg的可执行目标,并指定源文件:
add_executable (yolov8-seg ${PROJECT_SOURCE_DIR}/src/main.cpp ${SRCS})
  • 添加动态链接库
target_link_libraries(yolov8-seg nvinfer cudart nvonnxparser cudnn nvinfer_plugin ${OpenCV_LIBS})

编译

打开cmake-gui.exe:
在这里插入图片描述
指定我们的项目路径,和build的路径(没有build文件夹则会自动创建)。

点击configure选择我们的底层生成器,这里我的vs2022:
在这里插入图片描述
然后点击finish,最后再点击generate即可生成我们的.sln项目文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

澄鑫

谢谢,将继续努力提供技术方案

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值