安装与集成
OnePath 以预构建库形式交付。你无需编译任何底层组件——链接一个 OnePath 库即可使用,运行时零外部依赖。本页介绍两种集成方式:RPM 安装(推荐)与直接使用库文件目录。
方式一:RPM 安装(推荐)
在 RHEL / Rocky 8/9/10、Fedora 等系统上,用 dnf 安装运行时与开发包。发行版后缀(.el8 / .el9 / .el10 / .fcN)会按主机自动匹配。
运行时包(部署机器)
部署只跑应用、不编译时,安装运行时包:
bash
# 一键安装两个变体的运行时
sudo dnf install ./libonepath-*.rpm
# 或只装需要的变体运行时
sudo dnf install ./libonepath-full-*.rpm # full 变体
sudo dnf install ./libonepath-tiny-*.rpm # tiny 变体开发包(编译机器)
需要编译应用时,安装开发包(含头文件、.so 链接与 pkg-config 描述文件):
bash
# 一键安装两个变体的开发件
sudo dnf install ./libonepath-devel-*.rpm
# 或只装需要的变体开发件
sudo dnf install ./libonepath-full-devel-*.rpm
sudo dnf install ./libonepath-tiny-devel-*.rpm用 pkg-config 编译
开发包安装后,pkg-config 会自动带上变体宏与头文件 / 库路径,这是最省心的编译方式:
bash
# full 变体
gcc $(pkg-config --cflags --libs libonepath-full) app.c -o app
# tiny 变体
gcc $(pkg-config --cflags --libs libonepath-tiny) app.c -o appTIP
pkg-config --cflags 会自动输出对应变体的 -DCONFIG_ONEPATH_VARIANT_FULL=1 或 _TINY=1,无需你手写变体宏。
方式二:直接使用库文件目录
若不通过 RPM,而是直接拿到一份预构建的 OnePath 库目录(头文件 + 各构建类型的 .so),手动给出头文件目录、变体宏、链接库与运行时搜索路径(rpath):
bash
# full 变体
gcc -DCONFIG_ONEPATH_VARIANT_FULL=1 \
-I<onepath>/include \
-L<onepath>/lib -lonepath-full \
-Wl,-rpath,<onepath>/lib \
app.c -o app
# tiny 变体
gcc -DCONFIG_ONEPATH_VARIANT_TINY=1 \
-I<onepath>/include \
-L<onepath>/lib -lonepath-tiny \
-Wl,-rpath,<onepath>/lib \
app.c -o app各编译选项的含义:
| 选项 | 作用 |
|---|---|
-DCONFIG_ONEPATH_VARIANT_FULL=1 / _TINY=1 | 选择变体(必须,二选一)。未定义时头文件 #error。 |
-I<onepath>/include | 头文件 onepath.h 所在目录 |
-L<onepath>/lib -lonepath-{full,tiny} | 链接对应变体的库 |
-Wl,-rpath,<onepath>/lib | 把库目录写入可执行文件,运行时无需再设环境变量 |
运行时
运行时只需 OnePath 库本身——底层通信引擎已静态内嵌,无任何外部依赖。只要动态链接器能找到 libonepath-*.so,程序即可启动。三种常见办法:
bash
# 1) 编译时已写入 rpath(如上)—— 无需额外操作
# 2) 临时指定库搜索路径
export LD_LIBRARY_PATH=<onepath>/lib:$LD_LIBRARY_PATH
./app
# 3) RPM 安装或放入系统库目录后刷新缓存
sudo ldconfig
./app