OnnxRuntime 1.18 运行异常
以前都是用OpenCV重新编译DNN加上CUDA支持,再用DNN运行推理。但是受不了这么做了,运行时OpenCV版本和CUDA版本都要保持一致,随便更换一个版本又得重新编译,编译新版本之后还得保留旧版本进行维护,不然的话之前的程序都要一起更新并重新编译。
所以现在改成原版OpenCV + OnnxRuntime去推理,起码别人都帮你预编译过了。
现在OnnxRuntime最新的1.18.1有奇怪的问题,只要包含了库就会发生0xC0000005,即使是一个空白程序。
CMakeLists.txt如下
cmake_minimum_required(VERSION 3.15)
project(OnnxDemo VERSION 0.0.1 LANGUAGES CXX)
set(ONNXRUNTIME_ROOT "onnxruntime-win-x64-1.18.1/")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(${ONNXRUNTIME_ROOT}/include)
link_directories(${ONNXRUNTIME_ROOT}/lib)
add_executable(OnnxDemo main.cpp)
target_link_libraries(OnnxDemo onnxruntime ${OpenCV_LIBS})
main.cpp中引入Onnxruntime api
#include <onnxruntime_cxx_api.h>
也用depends看过了并没有缺动态库,程序运行时加载的也是正确的runtime dll,链接的lib也是对的,但这问题就是在这里。折磨一天后换了1.16.0就一切正常,什么问题都没有,我就修改了ONNXRUNTIME_ROOT到1.16.0.
不知道、不理解、不明白