rsyslog交叉编译(armv7、armv8、aarch64、arm32平台通用)

发布于:2024-09-05 ⋅ 阅读:(44) ⋅ 点赞:(0)


该文档描述了如何交叉编译rsyslog到arm64嵌入式平台。

1、依赖库列表

  • libestr-0.1.11
  • libuuid-1.0.3
  • libfastjson-0.99.8
  • libgcrypt-1.8.7
  • libgpg-error-1.39
  • openssl-1.1.1g
  • curl-7.74.0
  • zlib-1.2.11

2、编译建议

这里由于依赖较多,因此建议在编译安装的时候,将安装路径选择在同一路径下,这样在其他软件需要依赖时,只需要指定一个路径即可,极大的方便后续配置。同时为了方便拷贝生成库,我们单独指定一个安装库路径。

一个一个进行编译可以参考第三小节单个编译流程,按照步骤一步一步编译基本是没有问题的。

编译rsyslog涉及非常多依赖,因此我将其整理成了一个编译脚本,进行一键编译。
下载连接
文件目录:在这里插入图片描述
在顶层make.sh脚本中修改为自己的交叉编译链工具即可。
在这里插入图片描述
然后执行:./make.sh 即可进行编译
编译后的库在:lib下面
编译后的二进制及其他头文件等在:install目录下面。

3、编译

注意,下面每一个依赖都要确认编译成功,否则都将导致后续编译rsyslog编译失败。

3.1、编译libestr

获取源码:

wget http://libestr.adiscon.com/files/download/libestr-0.1.11.tar.gz

编译shell:

#!/bin/bash
top_dir=$(pwd)
export PATH=$PATH:$top_dir/toolchain/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin
CROSS_COMPILING_PREFIX=aarch64-none-linux-gnu
INSTALL_PATH=$top_dir/install
INSTALL_LIB_PATH=$top_dir/lib
# 解压 编译libestr
if [ -e $top_dir/src/libestr-0.1.11 ]
then
    echo "libestr-0.1.11 have be decompression"
else
    tar -xvf $top_dir/download/libestr-0.1.11.tar.gz -C $top_dir/src/
fi
cd $top_dir/src/libestr-0.1.11
./configure --host=$CROSS_COMPILING_PREFIX --prefix=$INSTALL_PATH --libdir=$INSTALL_LIB_PATH
make
(( $? == 0 )) || exit 1
make install
cd -

3.2、编译libfastjson

获取源码

wget http://download.rsyslog.com/libfastjson/libfastjson-0.99.8.tar.gz

编译shell:

#!/bin/bash
top_dir=$(pwd)
export PATH=$PATH:$top_dir/toolchain/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin
CROSS_COMPILING_PREFIX=aarch64-none-linux-gnu
INSTALL_PATH=$top_dir/install
INSTALL_LIB_PATH=$top_dir/lib
# 解压 编译libfastjson
if [ -e $top_dir/src/libfastjson-0.99.8 ]
then
    echo "libfastjson-0.99.8 have be decompression"
else
    tar -xvf $top_dir/download/libfastjson-0.99.8.tar.gz -C $top_dir/src/
fi
cd $top_dir/src/libfastjson-0.99.8
./configure --host=$CROSS_COMPILING_PREFIX --prefix=$INSTALL_PATH --libdir