Closed helios123456-lab closed 1 year ago
这些都是链接时的动态库找不到的报错,确认你动态库的路径跟cmakelist中配置连接的路径是否一致,不一致需要你自己手动修改你本机对应三方库的路径
btw,让我给一个运行测试步骤却连star都没点,说不过去吧
cmakelist中配置连接都是改成我本地的路径了。 cmake_minimum_required(VERSION 3.15) project(trt_yolov8)
set(CMAKE_CXX_STANDARD 14)
set(CUDA_TOOLKIT_ROOT_DIR /usr/local/cuda-11.8) set(TENSORRT_ROOT_DIR /home/TensorRT-8.6.1.6)
find_package(CUDA REQUIRED) find_package(OpenCV REQUIRED) find_package(Threads REQUIRED)
include_directories(/usr/local/include) include_directories(/usr/include/opencv4) include_directories(${CUDA_TOOLKIT_ROOT_DIR}/include) include_directories(${TENSORRT_ROOT_DIR}/include) include_directories(src) include_directories(src/base) include_directories(src/ffmpeg)
link_directories(${CUDA_TOOLKIT_ROOT_DIR}/lib64) link_directories(${TENSORRT_ROOT_DIR}/lib)
file(GLOB_RECURSE FFmpeg_LIBS /usr/lib/x86_64-linux-gnulibav.so /usr/lib/x86_64-linux-gnulibsw.so /usr/lib/x86_64-linux-gnulibpostproc.so)
set( local_libs pthread ${FFmpeg_LIBS} ${OpenCV_LIBS} nvinfer nvinfer_plugin nvonnxparser cuda cublas cudart cudnn )
file(GLOB_RECURSE TRT_YOLOV8_SERVER_CPP_SRC src/.cpp) file(GLOB_RECURSE TRT_YOLOV8_SERVER_CU_SRC src/.cu)
cuda_add_library(trt_yolov8_cuda_lib ${TRT_YOLOV8_SERVER_CU_SRC}) add_library(trt_yolov8_cpp_lib SHARED ${TRT_YOLOV8_SERVER_CPP_SRC})
add_executable(test_yolov8 test/app.cpp ) target_link_libraries(test_yolov8 ${local_libs} trt_yolov8_cuda_lib trt_yolov8_cpp_lib)
不好意思,star补上了。 谢谢你的答复。
------------------ 原始邮件 ------------------ 发件人: "1461521844lijin/trt_yolov8_infer_example" @.>; 发送时间: 2023年6月21日(星期三) 晚上6:55 @.>; @.**@.>; 主题: Re: [1461521844lijin/trt_yolov8_infer_example] 编译可执行文件失败 (Issue #1)
这些都是链接时的动态库找不到的报错,确认你动态库的路径跟cmakelist中配置连接的路径是否一致,不一致需要你自己手动修改你本机对应三方库的路径
btw,让我给一个运行测试步骤却连star都没点,说不过去吧
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
你的问题中有一个是链不到tensorrt的函数实现,其他都是链不到ffmpeg的函数实现 ffmpeg链接中有x86_64-linux-gnulib这种前缀??? 是不是少了个 “/ ” x86_64-linux-gnu/lib 再检查一下吧
根据readme, 在本地重新生成tensorrt engine后,编译可执行文件失败,提示: /usr/bin/ld: libtrt_yolov8_cuda_lib.a(trt_yolov8_cuda_lib_generated_infer.cu.o): in function
nvinfer1::(anonymous namespace)::createInferRuntime(nvinfer1::ILogger&)': /home/TensorRT-8.6.1.6/include/NvInferRuntime.h:3756: undefined reference to
createInferRuntime_INTERNAL' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavformat_new_stream' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
avformat_close_input' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toav_write_trailer' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
avformat_open_input' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavcodec_parameters_copy' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
av_packet_free' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavcodec_parameters_alloc' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
av_rescale_q_rnd' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavcodec_find_encoder' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
avformat_find_stream_info' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toav_frame_get_buffer' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
av_packet_alloc' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavcodec_find_decoder' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
avcodec_alloc_context3' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toav_opt_set_int' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
av_frame_free' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavcodec_parameters_from_context' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
av_image_get_buffer_size' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toav_dump_format' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
avcodec_free_context' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavformat_write_header' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
avformat_alloc_context' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toavcodec_parameters_free' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
av_seek_frame' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference toav_opt_set' /usr/bin/ld: libtrt_yolov8_cpp_lib.so: undefined reference to
avcodec_open2' 。。。。 ffmpeg,opencv4,tensorrt环境编译都是OK的,楼主能给个详细的运行测试步骤么?