Jetson Xavier NX编译TensorRT,CMake配置

本文详细描述了一个C++项目的构建过程,涉及TensorRT、CUDA库的路径设置,CMake配置,以及针对不同环境(debug和release)的编译选项,以及OpenCV和gflags的集成。
摘要由CSDN通过智能技术生成

TensorRT路径

include:/usr/include/aarch64-linux-gnu
lib: /usr/lib/aarch64-linux-gnu
tensorrt:/usr/src/tensorrt

CUDA路径

include:/usr/local/cuda/include
lib: /usr/local/cuda/lib64

CMake

cmake_minimum_required(VERSION 3.10)
project(trt_demo LANGUAGES CXX CUDA)                # 项目信息

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CUDA_STANDARD 11)                         # 用于指定CUDA编译器应该使用的CUDA C++标准的版本
set(CMAKE_CUDA_STANDARD_REQUIRED ON)                # 表明如果找不到指定版本的CUDA编译器,将发出错误
set(CMAKE_CXX_STANDARD 11)                          # 用于指定 C++ 编译器应该使用的 C++ 标准版本
set(CMAKE_CXX_STANDARD_REQUIRED ON)                 # 表明如果找不到指定版本的 C++ 编译器,将发出错误
set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)   # 设置NVCC编译器

# TensorRT
include_directories(/usr/include/aarch64-linux-gnu)
link_directories(/usr/lib/aarch64-linux-gnu)

# CUDA
set(CUDA_ROOT /usr/local/cuda)
include_directories(${CUDA_ROOT}/include/)
link_directories(${CUDA_ROOT}/lib64)

# opencv
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_libraries(${OpenCV_LIBS})

# gflags
#include_directories(${gflags_INCLUDE_DIRS})
#link_libraries(${gflags_LIBRARIES})

if (YES)    # YES: release   NO: debug 
    message("++ Compile and release versions of the program.")
    set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -O3 -arch=sm_72")         # release
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
else()
    message("++ Compile and debug versions of the program.")
    set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -O0 -G -g -arch=sm_72")   # debug
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g")
endif()

# 添加可执行文件
file(GLOB_RECURSE SRCS ${PROJECT_SOURCE_DIR}/src/cpp/*.cpp ${PROJECT_SOURCE_DIR}/src/cpp/*.cu)
set(INCS ${PROJECT_SOURCE_DIR}/include)
add_executable(trt-demo ${SRCS})
target_include_directories(trt-demo PRIVATE ${INCS}) 

target_link_libraries(trt-demo PRIVATE -lstdc++fs) # 编译experimental/filesystem模块
target_link_libraries(trt-demo PRIVATE nvinfer nvonnxparser nvparsers nvinfer_plugin)  # 链接TensorRT动态库
target_link_libraries(trt-demo PRIVATE cudart)                                         # 链接CUDA动态库

set_target_properties(trt-demo PROPERTIES CUDA_ARCHITECTURES "72") # 目标架构是Compute Capability 7.2
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值