设置环境变量

CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf-
SYSROOT=/home/xuyongxian/toolchains/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot

celix交叉编译

第三方的库看情况需要的话就进行编译

git clone https://github.com/apache/celix.git

mkdir build && cd build

## -DBUILD_REMOTE_SERVICE_ADMIN 禁用远程调试
cmake .. \
  -DCMAKE_SYSTEM_NAME=Linux \
  -DCMAKE_C_COMPILER=${CROSS_COMPILE}gcc \
  -DCMAKE_CXX_COMPILER=${CROSS_COMPILE}g++ \
  -DCMAKE_INSTALL_PREFIX=${SYSROOT}/usr \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_FIND_ROOT_PATH=${SYSROOT} \
  -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
  -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
  -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
  -DBUILD_REMOTE_SERVICE_ADMIN=OFF \
  -DCMAKE_SHARED_LINKER_FLAGS="-lfts"

安装第三方库

jansson

git clone https://github.com/akheron/jansson.git

mkdir build && cd build

cmake .. \
  -DCMAKE_C_COMPILER=${CROSS_COMPILE}gcc \
  -DCMAKE_CXX_COMPILER=${CROSS_COMPILE}g++ \
  -DCMAKE_INSTALL_PREFIX=${SYSROOT}/usr \
  -DJANSSON_BUILD_SHARED_LIBS=ON

make -j16

make install

libuv

git clone https://github.com/libuv/libuv.git

mkdir build && cd build

cmake .. \
  -DCMAKE_C_COMPILER=${CROSS_COMPILE}gcc \
  -DCMAKE_CXX_COMPILER=${CROSS_COMPILE}g++ \
  -DCMAKE_INSTALL_PREFIX=${SYSROOT}/usr \
  -DBUILD_SHARED_LIBS=ON      
         
make -j16

make install

rapidjson

git clone https://github.com/Tencent/rapidjson.git

cp -rf include/rapidjson ${SYSROOT}/include/

musl-fts

git clone https://github.com/void-linux/musl-fts.git

./bootstrap.sh

./configure \
    --host=arm-rockchip830-linux-uclibcgnueabihf \
    --prefix=${SYSROOT}/usr \
    --enable-shared \
    --disable-static

zlib

wget https://zlib.net/zlib-1.3.2.tar.gz
tar -zxvf zlib-1.3.2.tar.gz && cd zlib-1.3.2

CC=${CROSS_COMPILE}gcc \
./configure --prefix=${SYSROOT}/usr

libzip

git clone https://github.com/nih-at/libzip.git
mkdir build && cd build
cmake .. \
  -DCMAKE_C_COMPILER=${CROSS_COMPILE}gcc \
  -DCMAKE_CXX_COMPILER=${CROSS_COMPILE}g++ \
  -DCMAKE_INSTALL_PREFIX=${SYSROOT}/usr \
  -DCMAKE_SYSROOT=${SYSROOT} \
  -DBUILD_SHARED_LIBS=ON \
  -DENABLE_TOOLS=OFF \
  -DENABLE_DOCS=OFF \
  -DENABLE_GNUTLS=OFF \
  -DENABLE_NETTLE=OFF \
  -DENABLE_OPENSSL=OFF

libuuid

wget https://www.kernel.org/pub/linux/utils/util-linux/v2.38/util-linux-2.38.1.tar.xz
tar -xvf util-linux-2.38.1.tar.xz
cd util-linux-2.38.1

./configure \
    --host=arm-rockchip830-linux-uclibcgnueabihf \
    --prefix=${SYSROOT}/usr \
    --disable-all-programs \
    --enable-libuuid \
    --without-python

curl

wget https://curl.se/download/curl-8.4.0.tar.gz
tar -xvf curl-8.4.0.tar.gz
cd curl-8.4.0

./configure \
    --host=arm-rockchip830-linux-uclibcgnueabihf \
    --prefix=${SYSROOT}/usr \
    --enable-shared \
    --disable-static \
    --without-ssl \
    --without-libpsl \
    --without-libidn2 \
    --disable-ldap \
    --disable-ldaps \
    --disable-rtsp \
    --disable-dict \
    --disable-telnet \
    --disable-tftp \
    --disable-pop3 \
    --disable-imap \
    --disable-smtp \
    --disable-gopher \
    --disable-file \
    --disable-ftp \
    --without-libssh2