shouxieai / tensorRT_Pro

C++ library based on tensorrt integration
MIT License
2.62k stars 549 forks source link

cmake 文件有问题?只修改了路径,然后cmake .. 报错 #117

Closed cqray1990 closed 2 years ago

cqray1990 commented 2 years ago

cmake_minimum_required(VERSION 2.6) project(pro)

option(CUDA_USE_STATIC_CUDA_RUNTIME OFF) set(CMAKE_CXX_STANDARD 11) set(CMAKE_BUILD_TYPE Debug) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/workspace)

如果要支持python则设置python路径

set(HAS_PYTHON ON) set(PythonRoot "/anaconda3") set(PythonName "python3.7m")

如果你是不同显卡,请设置为显卡对应的号码参考这里:https://developer.nvidia.com/zh-cn/cuda-gpus#compute

set(CUDA_GEN_CODE "-gencode=arch=compute_75,code=sm_75")

如果你的opencv找不到,可以自己指定目录

set(OpenCV_DIR "/ttrct/tensorRT_Pro/opencv/lib/cmake/opencv4/")

set(CUDA_TOOLKIT_ROOT_DIR "/usr/local/cuda-10.2") set(CUDNN_DIR "/usr/local/cuda-10.2") set(TENSORRT_DIR "/ttrct/TensorRT-8.4.1.5")

set(CUDA_TOOLKIT_ROOT_DIR "/data/sxai/lean/cuda-10.2")

set(CUDNN_DIR "/data/sxai/lean/cudnn7.6.5.32-cuda10.2")

set(TENSORRT_DIR "/data/sxai/lean/TensorRT-7.0.0.11")

set(CUDA_TOOLKIT_ROOT_DIR "/data/sxai/lean/cuda-11.1")

set(CUDNN_DIR "/data/sxai/lean/cudnn8.2.2.26")

set(TENSORRT_DIR "/data/sxai/lean/TensorRT-7.2.1.6")

因为protobuf,需要用特定版本,所以这里指定路径

set(PROTOBUF_DIR /ttrct/tensorRT_Pro/protobuf3.11")

find_package(CUDA REQUIRED)

find_package(OpenCV)

include_directories( ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/src/application ${PROJECT_SOURCE_DIR}/src/tensorRT ${PROJECT_SOURCE_DIR}/src/tensorRT/common ${OpenCV_INCLUDE_DIRS} ${CUDA_TOOLKIT_ROOT_DIR}/include ${PROTOBUF_DIR}/include ${TENSORRT_DIR}/include ${CUDNN_DIR}/include )

切记,protobuf的lib目录一定要比tensorRT目录前面,因为tensorRTlib下带有protobuf的so文件

这可能带来错误

link_directories( ${PROTOBUF_DIR}/lib ${TENSORRT_DIR}/lib ${CUDA_TOOLKIT_ROOT_DIR}/lib64 ${CUDNN_DIR}/lib )

if("${HAS_PYTHON}" STREQUAL "ON") message("Usage Python ${PythonRoot}") include_directories(${PythonRoot}/include/${PythonName}) link_directories(${PythonRoot}/lib) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAS_PYTHON") endif()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -O0 -Wfatal-errors -pthread -w -g") set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -std=c++11 -O0 -Xcompiler -fPIC -g -w ${CUDA_GEN_CODE}") file(GLOB_RECURSE cpp_srcs ${PROJECT_SOURCE_DIR}/src/.cpp) file(GLOB_RECURSE cuda_srcs ${PROJECT_SOURCE_DIR}/src/.cu) cuda_add_library(plugin_list SHARED ${cuda_srcs}) target_link_libraries(plugin_list nvinfer nvinfer_plugin) target_link_libraries(plugin_list cuda cublas cudart cudnn) target_link_libraries(plugin_list protobuf pthread) target_link_libraries(plugin_list ${OpenCV_LIBS})

add_executable(pro ${cpp_srcs})

如果提示插件找不到,请使用dlopen(xxx.so, NOW)的方式手动加载可以解决插件找不到问题

target_link_libraries(pro nvinfer nvinfer_plugin) target_link_libraries(pro cuda cublas cudart cudnn) target_link_libraries(pro protobuf pthread plugin_list) target_link_libraries(pro ${OpenCV_LIBS})

if("${HAS_PYTHON}" STREQUAL "ON") set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/example-python/pytrt) add_library(pytrtc SHARED ${cpp_srcs}) target_link_libraries(pytrtc nvinfer nvinfer_plugin) target_link_libraries(pytrtc cuda cublas cudart cudnn) target_link_libraries(pytrtc protobuf pthread plugin_list) target_link_libraries(pytrtc ${OpenCV_LIBS}) target_link_libraries(pytrtc "${PythonName}") target_link_libraries(pro "${PythonName}") endif()

add_custom_target( yolo DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro yolo )

add_custom_target( yolo_gpuptr DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro yolo_gpuptr )

add_custom_target( yolo_fast DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro yolo_fast )

add_custom_target( centernet DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro centernet )

add_custom_target( alphapose DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro alphapose )

add_custom_target( retinaface DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro retinaface )

add_custom_target( dbface DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro dbface )

add_custom_target( arcface DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro arcface )

add_custom_target( bert DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro bert )

add_custom_target( fall DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro fall_recognize )

add_custom_target( scrfd DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro scrfd )

add_custom_target( lesson DEPENDS pro WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/workspace COMMAND ./pro lesson )

add_custom_target( pyscrfd DEPENDS pytrtc WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/example-python COMMAND python test_scrfd.py )

add_custom_target( pyinstall DEPENDS pytrtc WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/example-python COMMAND python setup.py install )

add_custom_target( pytorch DEPENDS pytrtc WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/example-python COMMAND python test_torch.py )

add_custom_target( pyyolov5 DEPENDS pytrtc WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/example-python COMMAND python test_yolov5.py )

add_custom_target( pycenternet DEPENDS pytrtc WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/example-python COMMAND python test_centernet.py )

error;

CMake Warning (dev) at CMakeLists.txt:68: Syntax Warning in cmake code at column 95

Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:85: Syntax Warning in cmake code at column 5

Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:85: Syntax Warning in cmake code at column 32

Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:92: Syntax Warning in cmake code at column 35

Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:92: Syntax Warning in cmake code at column 48

Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:93: Syntax Warning in cmake code at column 32

Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at CMakeLists.txt:213: Parse error. Function missing ending ")". Instead found unterminated string with text ")

endif()

deepConnectionism commented 1 year ago
set(PROTOBUF_DIR /ttrct/tensorRT_Pro/protobuf3.11") 

->

set(PROTOBUF_DIR "/ttrct/tensorRT_Pro/protobuf3.11")