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"的文件,并将其中的替换成你实际的onnx模型的地址。

#include 
#include 
#include 

int main() {
    Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "ONNXRuntime");
    Ort::SessionOptions session_options;
    Ort::Session session(env, "", 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

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

                ""

                ""的地址。

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

locate cpu_provider_factory.h
locate onnxruntime_cxx_api.h

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

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

你可能感兴趣的:(c++,开发语言)