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

大师兄啊哈發表於2024-11-04

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連結器載入動態庫的搜尋路徑順序

相關文章