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


该文档描述了如何交叉编译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
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
rsyslog是一种用于系统日志管理的开源软件,它支持在不同的平台上进行交叉编译交叉编译是一种在一种架构(通常是开发机器)上编译代码,然后将生成的可执行文件在另一种架构(目标机器)上运行的过程。 要进行rsyslog交叉编译,首先需要了解目标架构的特性和要求。我们需要为目标机器的操作系统和处理器架构选择合适的交叉编译工具链。这个工具链包含了交叉编译所需的编译器、链接器和其他工具。 一般来说,在进行交叉编译之前,需要先进行环境配置。我们需要设置好工具链的路径,以便能够找到正确的编译器和链接器。同时,还需要设置一些环境变量,如CROSS_COMPILE,指明交叉编译工具链的前缀。 接下来,我们需要获取rsyslog的源代码。我们可以从官方网站或代码仓库中获取最新的源代码。然后,我们将源代码解压并进入其目录。 在进行交叉编译之前,需要先配置rsyslog的构建选项。通过运行./configure命令,我们可以设置一些编译选项,如目标架构、目标操作系统、依赖库的路径等。在进行配置时,我们需要使用工具链中的交叉编译工具,以确保生成的配置文件适用于目标机器。 配置完成后,我们可以运行make命令进行编译。这个过程中,会使用工具链中的交叉编译器和链接器,生成适用于目标机器的可执行文件和库文件。 最后,我们可以将编译得到的可执行文件和库文件复制到目标机器上,并进行测试和部署。 通过以上步骤,就可以实现rsyslog交叉编译交叉编译能够让我们在不同架构的机器上使用同一份代码,提高了灵活性和效率。但是要注意,交叉编译可能会涉及到一些特定的配置和依赖关系,需要仔细处理和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

思禾

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

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

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

打赏作者

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

抵扣说明:

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

余额充值