跳转至

交叉编译必要库

$ cd $HOME/Desktop/HiLinux

zlib

所有与压缩相关的算法几乎都需要依赖底层的 zlib

compile-zlib.sh:

#!/bin/bash
ROOT_DIR="$HOME/Desktop/HiLinux"
INSTALL_DIR="${ROOT_DIR}/libraries"
mkdir -p $ROOT_DIR $INSTALL_DIR

wget https://zlib.net/zlib1213.zip
unzip zlib1213.zip
cd zlib-1.2.13/
export cross=aarch64-himix200-linux
CHOST="${cross}" CC="${cross}-gcc" CXX="${cross}-g++" AR="${cross}-ar" LD="${cross}-ld" RANLIB="${cross}-ranlib" ./configure --prefix=$INSTALL_DIR
make -j4
make install
cd ..

rm -rf zlib1213.zip zlib-1.2.13/
$ vim compile-zlib.sh
$ chmod +x compile-zlib.sh
$ ./compile-zlib.sh

这样在 INSTALL_DIR 中,就已经安装了交叉编译好的 zlib

$ tree libraries/
libraries/
├── include
│   ├── zconf.h
│   └── zlib.h
├── lib
│   ├── libz.a
│   ├── libz.so -> libz.so.1.2.13
│   ├── libz.so.1 -> libz.so.1.2.13
│   ├── libz.so.1.2.13
│   └── pkgconfig
│       └── zlib.pc
└── share
    └── man
        └── man3
            └── zlib.3

ffi

Python 编译需要。

#!/bin/bash
ROOT_DIR="$HOME/Desktop/HiLinux"
INSTALL_DIR="${ROOT_DIR}/libraries"
mkdir -p $ROOT_DIR $INSTALL_DIR

wget https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz
tar xf libffi-3.4.4.tar.gz
cd libffi-3.4.4/
export cross=aarch64-himix200-linux
CHOST="${cross}" CC="${cross}-gcc" CXX="${cross}-g++" AR="${cross}-ar" LD="${cross}-ld" RANLIB="${cross}-ranlib" ./configure --prefix=$INSTALL_DIR --host=${cross}
make -j4
make install
cd ..

rm -rf libffi-3.4.4.tar.gz libffi-3.4.4/
$ vim compile-ffi.sh
$ chmod +x compile-zlib.sh
$ ./compile-zlib.sh

这样在 INSTALL_DIR 中,就已经安装了交叉编译好的 libffi

$ tree libraries/
libraries/
├── include
│   ├── ffi.h
│   ├── ffitarget.h
│   ├── zconf.h
│   └── zlib.h
├── lib
│   ├── libz.a
│   ├── libz.so -> libz.so.1.2.13
│   ├── libz.so.1 -> libz.so.1.2.13
│   ├── libz.so.1.2.13
│   └── pkgconfig
│       ├── libffi.pc
│       └── zlib.pc
├── lib64
│   ├── libffi.a
│   ├── libffi.la
│   ├── libffi.so -> libffi.so.8.1.2
│   ├── libffi.so.8 -> libffi.so.8.1.2
│   └── libffi.so.8.1.2
└── share
    ├── info
       ├── dir
       └── libffi.info
    └── man
        └── man3
            ├── ffi.3
            ├── ffi_call.3
            ├── ffi_prep_cif.3
            ├── ffi_prep_cif_var.3
            └── zlib.3

libpng

项目中需要使用 libpng 对图像数据压缩之后再传输。

compile-png.sh:

#!/bin/bash
ROOT_DIR="$HOME/Desktop/HiLinux"
INSTALL_DIR="${ROOT_DIR}/libraries"
mkdir -p $ROOT_DIR $INSTALL_DIR

wget https://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.39/libpng-1.6.39.tar.xz
tar xf libpng-1.6.39.tar.xz
cd libpng-1.6.39/
export cross=aarch64-himix200-linux
CHOST="${cross}" CC="${cross}-gcc" CXX="${cross}-g++" AR="${cross}-ar" LD="${cross}-ld" RANLIB="${cross}-ranlib" CFLAGS="-I$INSTALL_DIR/include" CPPFLAGS="-I$INSTALL_DIR/include" LDFLAGS="-L$INSTALL_DIR/lib -L$INSTALL_DIR/lib64" ./configure --prefix=$INSTALL_DIR --host=${cross}
make -j4 
make install
cd ..

rm -rf libpng-1.6.39.tar.xz libpng-1.6.39/
$ vim compile-ffi.sh
$ chmod +x compile-zlib.sh
$ ./compile-zlib.sh