本文檔描述如何對rsyslog進行交叉編譯,使其可以工作在zynq設備(armv7)上。研發人員可以根據該文檔將相關源碼包及編譯過程加入到自動編譯環境中。

armv7交叉編譯rsyslog

目錄

  • armv7交叉編譯rsyslog
  • 範圍
  • 依賴庫列表
  • 編譯libestr
  • 獲取源碼
  • 編譯
  • 編譯libfastjson
  • 獲取源碼
  • 編譯
  • 編譯zlib
  • 獲取源碼
  • 編譯
  • 編譯libuuid
  • 獲取源碼
  • 編譯
  • 編譯libgpg-error
  • 獲取源碼
  • 編譯
  • 編譯libgcrypt
  • 源碼獲取
  • 編譯
  • 編譯curl
  • 源碼獲取
  • 編譯
  • 編譯rsyslog
  • 源碼獲取
  • 編譯

範圍

本文檔描述如何對rsyslog進行交叉編譯,使其可以工作在zynq設備(armv7)上。研發人員可以根據該文檔將相關源碼包及編譯過程加入到自動編譯環境中。

依賴庫列表

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

編譯libestr

獲取源碼

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

編譯

tar -xvf libestr-0.1.11.tar.gz
cd libestr-0.1.11/
#僅安裝庫文件到目錄下
./configure --host=arm-linux-gnueabihf --prefix=/tmp/rsyslog --libdir=/root/rsyslog/lib 
make
make install
cd -

編譯libfastjson

獲取源碼

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

編譯

tar -xvf libfastjson-0.99.8.tar.gz
cd libfastjson-0.99.8/
./configure --host=arm-linux-gnueabihf --prefix=/tmp/rsyslog --libdir=/root/rsyslog/lib 
make
make install
cd -

編譯zlib

獲取源碼

#源碼地址:http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.xz?download
wget https://udomain.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.xz

編譯

cd zlib-1.2.11/
export CC=arm-linux-gnueabihf-gcc
export LD=arm-linux-gnueabihf-ld
export AR=arm-linux-gnueabihf-ar
./configure  --prefix=/tmp/rsyslog --libdir=/root/rsyslog/lib --includedir=/root/rsyslog/include
make
make install
cd -
unset CC
unset LD
unset AR

編譯libuuid

獲取源碼

#https://sourceforge.net/projects/libuuid/
wget https://nchc.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz

編譯

tar -xvf libuuid-1.0.3.tar.gz
cd libuuid-1.0.3/
./configure --host=arm-linux-gnueabihf --prefix=/tmp/rsyslog --libdir=/root/rsyslog/lib
make
make install
cd -

編譯libgpg-error

獲取源碼

wget https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.39.tar.bz2

編譯

tar -xvf libgpg-error-1.39.tar.bz2 
cd libgpg-error-1.39/
./configure --host=arm-linux-gnueabihf --prefix=/tmp/rsyslog --libdir=/root/rsyslog/lib
make
make install
cd -

編譯libgcrypt

源碼獲取

wget https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.7.tar.bz2

編譯

tar -xvf libgcrypt-1.8.7.tar.bz2
cd libgcrypt-1.8.7/
./configure --host=arm-linux-gnueabihf --prefix=/tmp/rsyslog --libdir=/root/rsyslog/lib --with-libgpg-error-prefix=/tmp/rsyslog
make
make install
cd -
#解決rsyslog進行configure時報錯error: libgcrypt-config not found in PATH
export PATH=$PATH:/tmp/rsyslog/bin

編譯curl

源碼獲取

wget https://curl.se/download/curl-7.74.0.tar.gz

編譯

tar -xvf curl-7.74.0.tar.gz
cd curl-7.74.0/
./configure --host=arm-linux-gnueabihf 
make
make install
cd -

編譯rsyslog

源碼獲取

wget https://www.rsyslog.com/files/download/rsyslog/rsyslog-8.2012.0.tar.gz

編譯

tar -xvf rsyslog-8.2012.0.tar.gz
cd cd rsyslog-8.2012.0/
./configure --host=arm-linux-gnueabihf --prefix=/tmp/rsyslog --libdir=/root/rsyslog/lib --bindir=/root/rsyslog/bin/ --sbindir=/root/rsyslog/bin/ PKG_CONFIG_PATH=/root/rsyslog/lib/pkgconfig CFLAGS="-I
/root/rsyslog/include"
make
make install
cd -