Ubuntu18.04 ONNXRuntime C++ API编译

        最近在学习c++方面的部署应用,想着先拿熟悉的ONNX下手试试,却发现需要编译C++版本的ONNXRuntime。几经波折,在经历了一上午的编译后,终于成功了。写下这篇文章记录我的编译过程。

 1.基础编译环境要求

        这点是比较坑的,ONNXRuntime C++需要的cmake版本:3.26.0及以上,gcc版本: 9及以上。你可以通过以下两个命令查看cmake和gcc的版本:

cmake --version
gcc --version

        如果你的cmake和gcc版本不符合要求,可以参考以下两位大神的博客,照着来完全是ok的。

Ubuntu18.04 Cmake 升级

Ubuntu18.04 GCC/G++ 升级 

2.下载源码并编译 

        升级完成 Cmake和gcc后,就可以下载源码,开始编译之旅了。

2.1安装依赖

sudo apt update
sudo apt install -y build-essential cmake git libprotobuf-dev protobuf-compiler

 2.2克隆ONNX Runtime源代码仓库

git clone --recursive https://github.com/microsoft/onnxruntime.git
cd onnxruntime

2.3配置和构建ONNX Runtime

        这将使用CMake进行配置,并使用Release配置项构建ONNX Runtime共享库。--parallel选项可用于并行构建以加快速度。

./build.sh --config Release --build_shared_lib --parallel

 2.4安装ONNX Runtime

        这将在系统上安装ONNX Runtime共享库和头文件。 

cd build/Linux/Release
sudo make install

 2.5验证安装

        创建一个名为"test.cpp"的文件,并将其中的<path_to_your_onnx_model>替换成你实际的onnx模型的地址。

#include <onnxruntime/core/providers/cpu/cpu_provider_factory.h>
#include <onnxruntime/core/session/onnxruntime_cxx_api.h>
#include <iostream>

int main() {
    Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "ONNXRuntime");
    Ort::SessionOptions session_options;
    Ort::Session session(env, "<path_to_your_onnx_model>", session_options);
    std::cout << "ONNX Runtime installed and configured successfully!" << std::endl;
    return 0;
}

        然后编译C++示例:

g++ test.cpp -o test -I /usr/local/include/onnxruntime -L /usr/local/lib -lonnxruntime

./test

        如果你编译不通过,那你可能需要替换

                "<onnxruntime/core/providers/cpu/cpu_provider_factory.h>"

                "<onnxruntime/core/session/onnxruntime_cxx_api.h>"的地址。

        查看方式如下,不出意外你会得到你的库的实际地址,然后替换即可:

locate cpu_provider_factory.h
locate onnxruntime_cxx_api.h

        重新编译,运行./test成功后,你会得到这样的信息:

        至此,ONNXRuntime C++ API成功编译完成,可以开始“愉快”的码代码之路了!

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想起名字呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值