onnxruntime编译安装

本文介绍了如何从GitHub克隆Microsoft的onnxruntime库,切换到特定版本,使用CUDA进行编译,并在Qt项目中添加头文件和库链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

克隆源码

git clone --recursive https://github.com/Microsoft/onnxruntime
cd onnxruntime/
git checkout v1.8.0
git submodule update --init --recursive

编译

./build.sh --skip_tests --use_cuda --config Release --build_shared_lib --parallel --cuda_home /usr/local/cuda-11.1 --cudnn_home /usr/local/cuda-11.1

其中的use_cuda表示你要使用CUDA的onnxruntime,cuda_home和cudnn_home均指向你的CUDA安装目录即可。

编译完成输出

[100%] Linking CXX executable onnxruntime_test_all
[100%] Built target onnxruntime_test_all
[100%] Linking CUDA shared module libonnxruntime_providers_cuda.so
[100%] Built target onnxruntime_providers_cuda
2022-03-15 13:49:03,260 util.run [DEBUG] - Subprocess completed. Return code: 0
2022-03-15 13:49:03,260 build [INFO] - Build complete

qt添加头文件和库

*.pro文件

#onnx
INCLUDEPATH += /home/online/mytest/onnx/onnxruntime/include/onnxruntime \
            /home/online/mytest/onnx/onnxruntime/include/onnxruntime/core/session


LIBS += /home/online/mytest/onnx/onnxruntime/build/Linux/Release/libonnxruntime.so.1.8.0
LIBS += /home/online/mytest/onnx/onnxruntime/build/Linux/Release/libonnxruntime_providers_cuda.so
LIBS += /home/online/mytest/onnx/onnxruntime/build/Linux/Release/libonnxruntime_providers_shared.so
### C++ ONNX Runtime 编译教程 #### 准备工作 为了成功编译适用于Windows 10下的ONNX Runtime GPU版本,需准备好必要的开发工具和依赖项。这包括但不限于CUDA、cuDNN以及CMake等软件包[^1]。 对于希望构建支持特定平台(如Android)上的应用开发者来说,在完成整个过程之后可以在`build/Android/Release`路径下获取到名为`libonnxruntime.so`的共享库文件,该文件可以直接被集成至基于NDK或是CMake构建的应用程序当中[^2]。 #### 获取源码并初始化子模块 首先应当克隆官方GitHub仓库,并确保所有必需的子模块也被同步下载下来: ```bash git clone --recursive https://github.com/microsoft/onnxruntime.git cd onnxruntime git submodule update --init --force --recursive ``` 上述命令执行完毕后即完成了源代码及其关联资源的准备工作[^3]。 #### 创建虚拟环境与安装Python依赖 考虑到后续步骤需要用到一些由Python脚本驱动的功能,建议新建一个专门用于此项目的Conda环境来管理相关依赖关系: ```bash conda create -n onnxruntime python=3.8 pip install flatbuffers conda activate onnxruntime ``` 这里选择了Python 3.8作为解释器版本,并额外安装了一个叫做FlatBuffers的第三方库以便于处理某些数据结构化操作。 #### 执行实际编译指令 当一切就绪之后就可以运行正式的编译命令了。下面这条语句将会跳过测试环节仅保留发布模式下的动态链接库产物,同时开启多线程加速编译效率: ```bash ./build.sh --skip_tests --config Release --build_shared_lib --parallel ``` 值得注意的是不同操作系统间可能存在细微差异,因此具体参数设置还需参照官方文档说明进行适当调整。 #### 整合头文件以供使用 一旦顺利完成以上各阶段的工作,则可以着手准备将新生成出来的ONNX Runtime组件融入个人项目之中去了。比如在一个Ubuntu环境下利用VS Code编辑器配合CMakeLists.txt配置文件的方式实现YOLOv8目标检测模型推理功能时,就需要明确指定哪些位置存放着所需引入的接口定义文件: ```cmake include_directories( ${PROJECT_SOURCE_DIR}/path/to/include/ ) add_library(yolov8 include/img_process/yolov8_onnx.h include/img_process/yolov8_utils.h src/yolov8_onnx.cpp src/yolov8_utils.cpp ) ``` 这段CMake片段展示了怎样向工程添加自定义静态或共享库的同时也指定了相应的公共头文件所在之处[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值