文章目录
- 1、依赖库列表
- 2、编译建议
- 3、编译
-
- 3.1、编译libestr
- 3.2、编译libfastjson
- 3.3、编译zlib
- 3.4、编译libuuid
- 3.5、编译libgpg-error
- 3.6、编译libgcrypt
- 3.7、编译openssl
- 3.8、编译curl
- 3.9、编译rsyslog
该文档描述了如何交叉编译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