ubuntu20.04 安装cpp版onnxruntime

python版的onnxruntime安装比较简单,就一句话

cpp版的需要从源码编译安装
首先下载

git clone --recursive https://github.com/Microsoft/onnxruntime

然后编译

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

我这里会报错,说是cmake版本要高于3.18,而ubuntu自带的cmake只有3.16
升级之后还是3.16(已经是最新版本了)

只好自己下载cmake安装
这里找到你想要的版本,
我选的是3.19.1,下载tar.gz文件

cd cmake-3.19.1
./bootstrap

这里会报错说找不到openSSL
那么要安装ssl库

sudo apt-get install libssl-dev

然后make

make
sudo make install
cmake --version

cmake搞定了,继续编译onnxruntime

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

这时候你会发现在onnxruntime/build/Linux下有了文件夹

用的时候要在CMakeLists.txt中加入onnxruntime的路径

if(NOT ONNXRUNTIME_ROOTDIR)
    if(WIN32)
        set(ONNXRUNTIME_ROOTDIR "C:/Program Files (x86)/onnxruntime")
    else()
        include_directories("/下载onnxruntime的路径/onnxruntime")
    endif()
endif()

include_directories("${ONNXRUNTIME_ROOTDIR}/include" "${ONNXRUNTIME_ROOTDIR}/include/onnxruntime/core/session")
link_directories("${ONNXRUNTIME_ROOTDIR}/lib")

然后cpp文件中就能include onnxruntime了。

### 获取并使用 ONNXRuntime 静态链接库 为了在 Ubuntu 系统上获取并使用 ONNXRuntime 的静态链接库文件,以下是具体方法: #### 下载预构建的二进制包 可以从官方 GitHub 页面下载适用于 Linux 平台的预构建二进制包。这些包通常包含了动态和静态链接库文件以及头文件[^1]。 访问以下地址找到适合的操作系统本: https://github.com/microsoft/onnxruntime/releases/latest 选择目标平台为 **Linux**,架构为 **x86_64**,操作系统本为 **Ubuntu 20.04**,安装方式可以选择 `runfile` 或者源码编译的方式。 如果选择了运行时分发(Runfiles),解压后会发现类似结构的目录树,其中包含 `.a` 文件作为静态库的一部分。 #### 编译自定义静态库 另一种更灵活的方法是从源代码自行编译生成静态库。这允许开发者针对特定需求定制功能集或优化性能参数。执行下列命令完成环境准备与项目构建过程: ```bash git clone https://github.com/microsoft/onnxruntime.git cd onnxruntime ./build.sh --config RelWithDebInfo --use_static_libs --parallel --build_shared_lib 0 ``` 上述脚本选项解释如下: - `--use_static_libs`: 启用静态库支持. - `--build_shared_lib 0`: 关闭共享对象(.so)创建. 成功完成后,在输出目录(通常是 `build/Linux/RelWithDebInfo`) 中能够定位到所需的 `.a` 文件及其关联头文件集合[^3]. #### 设置开发环境变量 当获得所需静态库之后,需将其加入至项目的链接阶段配置之中。假设已知静态库位置 `/usr/local/lib/libonnxruntime.a`, 可通过设置 `LD_LIBRARY_PATH` 来确保程序运行期间能正确加载依赖项。例如: ```bash sudo find / -name "libonnxruntime.so*" # 查找动态库实际存储路径 export LD_LIBRARY_PATH=/path/to/static/libs:$LD_LIBRARY_PATH ``` 注意替换上面命令中的占位符为真实值[^2]。 另外还需确认 C++ 构建工具链知晓该新增加的库所在之处,可通过修改 Makefile 或 cmake scripts 实现这一点。 --- ### 示例代码片段展示如何链接静态库 对于基于 g++ 的简单例子来说,可能看起来像这样: ```cpp #include <onnxruntime_cxx_api.h> int main() { Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test"); } ``` 编译此程序需要用到 `-l` 参数指定额外的库名,并且告知编译器查找静态而非默认优先考虑的动态本: ```bash g++ test.cpp -o test \ -I/usr/local/include/onnxruntime/core/session \ -L/usr/local/lib -lonnxruntime -Wl,-Bstatic -lstdc++ ``` 此处特别强调的是加入了 `-Wl,-Bstatic` 标志来强制选用静态形式的标准 c++ runtime 库实例化副本[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝羽飞鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值