交叉编译 手动安装 libzip 库 移植ARM 需要 zlib的
安装 libzip 库 ,先安装 zlib
先安装 zlib 正确的 zlib 交叉编译方法-CSDN博客
tar -xzf libzip-1.10.1.tar.gz cd libzip-1.10.1
mkdir build
cd build
cd ~/libzip-1.10.1/build# 清除之前的配置 rm -rf *# 重新运行 CMake,禁用 OpenSSL 支持 cmake .. \-DCMAKE_INSTALL_PREFIX=/home/lxh/arm-libs/install \-DCMAKE_SYSTEM_NAME=Linux \-DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \-DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \-DCMAKE_C_FLAGS="-Os" \-DZLIB_LIBRARY=/home/lxh/arm-libs/install/lib/libz.a \-DZLIB_INCLUDE_DIR=/home/lxh/arm-libs/install/include \-DENABLE_OPENSSL=OFF \-DBUILD_SHARED_LIBS=OFF \-DBUILD_STATIC_LIBS=ON \-DBUILD_DOC=OFF \-DBUILD_EXAMPLES=OFF \-DBUILD_REGRESS=OFF \-DBUILD_TOOLS=OFF# 然后重新编译和安装 make -j4 make install
参数解释:
-
-DCMAKE_INSTALL_PREFIX=...
: 指定安装路径 -
-DCMAKE_SYSTEM_NAME=Linux
: 指定目标系统 -
-DCMAKE_C_COMPILER=...
: 指定 C 交叉编译器 -
-DCMAKE_CXX_COMPILER=...
: 指定 C++ 交叉编译器 -
-DCMAKE_C_FLAGS="-Os"
: 设置编译优化选项 -
-DBUILD_SHARED_LIBS=OFF
: 禁用共享库(生成 .a 静态库) -
-DBUILD_STATIC_LIBS=ON
: 启用静态库 -
其他
OFF
选项用于禁用不必要的组件,减少编译体积
# 然后重新编译 make -j4 make install
# makefile 示例
CC = arm-linux-gnueabihf-gcc
CFLAGS = -Os -I/home/lxh/arm-libs/install/include
LDFLAGS = -L/home/lxh/arm-libs/install/lib -lzip -lz -lssl -lcrypto -static
zip_folder: zip_folder.cpp
$(CC) $(CFLAGS) zip_folder.cpp -o zip_folder $(LDFLAGS)
clean:
rm -f zip_folder