Closed cqray1990 closed 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)
set(HAS_PYTHON ON) set(PythonRoot "/anaconda3") set(PythonName "python3.7m")
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(PROTOBUF_DIR /ttrct/tensorRT_Pro/protobuf3.11")
find_package(CUDA REQUIRED)
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 )
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})
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
CMake Warning (dev) at CMakeLists.txt:85: Syntax Warning in cmake code at column 32
CMake Warning (dev) at CMakeLists.txt:92: Syntax Warning in cmake code at column 35
CMake Warning (dev) at CMakeLists.txt:92: Syntax Warning in cmake code at column 48
CMake Warning (dev) at CMakeLists.txt:93: Syntax Warning in cmake code at column 32
CMake Error at CMakeLists.txt:213: Parse error. Function missing ending ")". Instead found unterminated string with text ")
endif()
->
set(PROTOBUF_DIR "/ttrct/tensorRT_Pro/protobuf3.11")
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()