解决The given version [xx] is not supported, only version 1 to 10 is supported in this build

1. 环境

  • 操作系统:windows 11 64bit。
  • vs版本:2022。
  • onnxruntime版本:1.12.1。

2. 问题

在下载了官网编译好的包,并在vs中配置好依赖之后,运行程序,立刻报:

The given version [12] is not supported, only version 1 to 10 is supported in this build

网上有一个回答,说到这个问题[1],意思是,在程序执行的时候,加载的dll并不是你指定的onnxruntime.dll,而是系统路径(/c/WINDOWS/SYSTEM32/onnxruntime.dll)中的onnxruntime.dll,造成inlucde的头文件与加载的dll不一致,因此报错。

因为/c/WINDOWS/SYSTEM32/在搜索路径中的优先级应该比自己设置的附加库目录要高,根据查询,Windows链接器加载动态库的搜索路径顺序为:

  • 当前进程的可执行模块所在的目录。
  • 当前目录。
  • Windows系统目录。如C:\Windows\System32,GetSystemDirectory函数检索此目录的路径。
  • Windows目录。 如C:\Windows,GetWindowsDirectory函数检索此目录的路径。
  • PATH环境变量中列出的目录。

因为先在C:\Windows\System32中找到了onnxruntime.dll,因为报了这个错。

3. 解决

将你指定的版本的onnxruntime.dll复制到你生成的exe所在目录。

4. 参考

[1] [Build]

[2] Windows/Linux链接器加载动态库的搜索路径顺序

posted @ 2024-11-04 15:09  大师兄啊哈  阅读(208)  评论(0编辑  收藏  举报