Windows onnxruntime编译openvino

理论上来说,可以直接访问 ONNXRuntime Releases 下载 dll 文件,然后从官方文档中下载缺少的头文件以直接调用,但我没有尝试过。

1. 下载 OpenVINO 包

从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下,例如:

C:\Program Files (x86)\Intel\openvino_2024.4.0

2. 克隆源码并编译

ONNXRuntime GitHub 仓库 克隆源码。需要注意以下事项:

  • 编译器需要安装 VS2022。
  • 必须通过 git clone 下载源码,因为需要递归克隆第三方库。

克隆命令

git clone --branch v1.20.1 --recursive https://github.com/Microsoft/onnxruntime
cd onnxruntime-1.20.1
pip install -r requirements-dev.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 编译命令

参考官方文档,使用以下命令编译:

./build.bat --config RelWithDebInfo --use_openvino AUTO:GPU,CPU --build_shared_lib --build_wheel

常见问题及解决方法

  1. 报错:找不到 openvino_dir
    设置环境变量,添加 OpenVINO 的安装路径。

    示例:
    设置环境变量示例
    设置环境变量示例

  2. 报错:部分包无法从 Git 拉取
    配置代理解决网络问题。可通过以下命令设置代理,端口号需根据梯子的端口设置:

    git config --global http.https://github.com.proxy socks5://127.0.0.1:10808
    
  3. 报错:Define device 失败
    使用新版代码,因旧版代码的某些头文件存在 Bug。如果非要使用旧版代码,需要对报错的头文件进行更改,报错的原因是对一个const string变量进行修改,需要创建临时变量进行赋值。

4. 生成解决方案

编译完成后,打开 VS2022,直接生成解决方案。生成后的标准目录如下:

生成目录示例

5. 调用代码问题

调用代码时可能会遇到以下错误:

FAIL: LoadLibrary failed with error 126 "" when trying to load "onnxruntime\capi\onnxruntime_providers_openvino.dll"

解决方法:在调用代码前,加载 C:\Program Files (x86)\Intel\openvino_2024.4.0 下的相关 DLL 文件。我选择编写代码,全部加载相关 DLL。

### 解决 OpenVINO 源码编译时遇到的错误 #### 编译环境准备 为了成功编译 OpenVINO 源码,确保开发环境中已经安装了必要的依赖项。通常情况下,官方推荐使用 Windows 或 Linux 系统进行源码编译。对于 Windows 用户来说,Visual Studio 是必不可少的一部分工具集[^3]。 #### 常见错误及其解决方案 ##### 1. CMake 配置失败 如果在配置阶段遇到了 `CMake` 相关的问题,这可能是由于缺少某些特定版本的库或者是路径设置不当引起的。建议先确认所有必需组件都已正确安装且环境变量已被适当配置。可以尝试清理缓存重新执行命令: ```bash cmake -S . -B build -DCMAKE_BUILD_TYPE=Release ``` ##### 2. 编译器兼容性问题 当使用较新的 Visual Studio 版本时可能会碰到与旧版代码不匹配的情况。此时应该考虑降级到支持的最低版本或是调整项目的属性页中的平台工具集选项以适应当前使用的编译器版本[^4]。 ##### 3. Python API 构建失败 构建过程中有时会因为找不到合适的 Python 库而导致报错。确保本地存在多个不同版本Python解释器的情况下只保留一个主要工作副本;另外还需注意 pip 安装包管理器是否正常运作以及是否有权限访问网络资源去获取所需的第三方扩展模块[^1]。 ##### 4. 文件路径过长导致复制/链接操作中断 特别是在 Windows 上,默认的最大路径长度限制为 260 字符。为了避免此类情况发生,在克隆仓库之前最好将目标位置设定在一个相对浅显易懂的位置比如 `D:\openvino_workdir` 下面再继续后续流程[^2]。 #### 实际案例分析 假设现在正面临如下具体场景:“试图通过 Git Bash 执行 make 后提示无法找到 nmake”。这是因为 Makefile 中指定了 NMake 作为默认生成器而实际上没有安装它。解决办法就是打开 VS Command Prompt 切换至对应目录后再试一次完整的编译过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值