Open manfrey666 opened 1 month ago
问题
windows编译成功后,执行exe文件报错。报错如下: 无法定位程序输入点 cudaMallocAsync 于动态链接库 Unable to locate program input point "cudaMallocAsync" in dynamic link library
运行环境
Windows 11 Cuda 11.6 TensorRT 8.6.1.6
CMakeLists.txt
cmake_minimum_required(VERSION 3.1) project(yolov8 LANGUAGES CXX CUDA) set(CMAKE_CUDA_ARCHITECTURES 89) set(CUDA_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6") # set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc) set(CMAKE_CUDA_COMPILER ${CUDA_DIR}/bin) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O3") set(CMAKE_CXX_STANDARD 14) set(CMAKE_BUILD_TYPE Release) option(CUDA_USE_STATIC_CUDA_RUNTIME OFF) # CUDA #set(CUDA_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6") #set(CUDA_INCLUDE_DIRS ${CUDA_DIR}/include} #set(CUDA_LIBRARIES ${CUDA_DIR}/lib/x64) find_package(CUDA REQUIRED) message(STATUS "CUDA Libs: \n${CUDA_LIBRARIES}\n") get_filename_component(CUDA_LIB_DIR ${CUDA_LIBRARIES} DIRECTORY) message(STATUS "CUDA Headers: \n${CUDA_INCLUDE_DIRS}\n") # OpenCV find_package(OpenCV REQUIRED) message(STATUS "OpenCV Libs: \n${OpenCV_LIBS}\n") message(STATUS "OpenCV Libraries: \n${OpenCV_LIBRARIES}\n") message(STATUS "OpenCV Headers: \n${OpenCV_INCLUDE_DIRS}\n") # TensorRT set(TENSORRT_DIR "D:/Dev/TensorRT/TensorRT-8.6.1.6.Windows10.x86_64.cuda-11.8/TensorRT-8.6.1.6") set(TensorRT_INCLUDE_DIRS ${TENSORRT_DIR}/include) set(TensorRT_LIBRARIES ${TENSORRT_DIR}/lib) message(STATUS "TensorRT Libs: \n${TensorRT_LIBRARIES}\n") message(STATUS "TensorRT Headers: \n${TensorRT_INCLUDE_DIRS}\n") list(APPEND INCLUDE_DIRS ${CUDA_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${TensorRT_INCLUDE_DIRS} include ) list(APPEND ALL_LIBS ${CUDA_LIBRARIES} ${CUDA_LIB_DIR} ${OpenCV_LIBRARIES} ${TensorRT_LIBRARIES} ) include_directories(${INCLUDE_DIRS}) add_executable(${PROJECT_NAME} main.cpp include/yolov8.hpp include/common.hpp ) target_link_directories(${PROJECT_NAME} PUBLIC ${ALL_LIBS}) target_link_libraries(${PROJECT_NAME} PRIVATE nvinfer nvinfer_plugin cudart ${OpenCV_LIBS})
尝试把libcudart.lib路径放到ALL_LIBS中呢
尝试把libcudart.lib路径放到ALL_LIBS中呢
似乎没有这个文件
尝试把libcudart.lib路径放到ALL_LIBS中呢
似乎没有这个文件
你的cuda版本是多少呀?需要大于11.0才有这个api。
Linux下这个符号在 libcudart.so
里面。
Win我很少用来开发,所以不知是怎样的。
尝试把libcudart.lib路径放到ALL_LIBS中呢
似乎没有这个文件
你的cuda版本是多少呀?需要大于11.0才有这个api。 Linux下这个符号在
libcudart.so
里面。 Win我很少用来开发,所以不知是怎样的。
cuda版本是11.6,win下应该是cudart.lib,已经在ALL_LIBS中了。
尝试把libcudart.lib路径放到ALL_LIBS中呢
似乎没有这个文件
你的cuda版本是多少呀?需要大于11.0才有这个api。 Linux下这个符号在
libcudart.so
里面。 Win我很少用来开发,所以不知是怎样的。cuda版本是11.6,win下应该是cudart.lib,已经在ALL_LIBS中了。
是把它所在的目录放在ALL_LIBS
尝试把libcudart.lib路径放到ALL_LIBS中呢
似乎没有这个文件
你的cuda版本是多少呀?需要大于11.0才有这个api。 Linux下这个符号在
libcudart.so
里面。 Win我很少用来开发,所以不知是怎样的。cuda版本是11.6,win下应该是cudart.lib,已经在ALL_LIBS中了。
是把它所在的目录放在ALL_LIBS
set(CUDA_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6")
list(APPEND ALL_LIBS
${CUDA_DIR}/lib/x64
${CUDA_LIBRARIES}
${CUDA_LIB_DIR}
${OpenCV_LIBRARIES}
${TensorRT_LIBRARIES}
)
是的。依然报错
尝试把libcudart.lib路径放到ALL_LIBS中呢
似乎没有这个文件
你的cuda版本是多少呀?需要大于11.0才有这个api。 Linux下这个符号在
libcudart.so
里面。 Win我很少用来开发,所以不知是怎样的。cuda版本是11.6,win下应该是cudart.lib,已经在ALL_LIBS中了。
是把它所在的目录放在ALL_LIBS
set(CUDA_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6") list(APPEND ALL_LIBS ${CUDA_DIR}/lib/x64 ${CUDA_LIBRARIES} ${CUDA_LIB_DIR} ${OpenCV_LIBRARIES} ${TensorRT_LIBRARIES} )
是的。依然报错
这个符号就在这个lib里,剩下的只能靠你自己排查了。
尝试把libcudart.lib路径放到ALL_LIBS中呢
似乎没有这个文件
你的cuda版本是多少呀?需要大于11.0才有这个api。 Linux下这个符号在
libcudart.so
里面。 Win我很少用来开发,所以不知是怎样的。cuda版本是11.6,win下应该是cudart.lib,已经在ALL_LIBS中了。
是把它所在的目录放在ALL_LIBS
set(CUDA_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6") list(APPEND ALL_LIBS ${CUDA_DIR}/lib/x64 ${CUDA_LIBRARIES} ${CUDA_LIB_DIR} ${OpenCV_LIBRARIES} ${TensorRT_LIBRARIES} )
是的。依然报错
这个符号就在这个lib里,剩下的只能靠你自己排查了。
好的,谢谢
问题
windows编译成功后,执行exe文件报错。报错如下: 无法定位程序输入点 cudaMallocAsync 于动态链接库 Unable to locate program input point "cudaMallocAsync" in dynamic link library
运行环境
Windows 11 Cuda 11.6 TensorRT 8.6.1.6
CMakeLists.txt