linux 下第三方库编译及交叉编译——MDBTOOLS--arm-64
1 相关依赖
gettext
2 下载、解压
wget https://github.com/mdbtools/mdbtools/archive/refs/tags/v1.0.0.tar.gz
tar -xvf v1.0.0.tar.gz
2.2 生成Makefile
2.2.1 解决问题
# 设置交叉编译链路径(替换为你的实际路径)
export CROSS_COMPILE_PATH="/home/nanqiu/Desktop/work/huawei_edge_app/buildTouchain/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/bin"# 将交叉编译链添加到系统 PATH(确保能找到编译器)
export PATH="$CROSS_COMPILE_PATH:$PATH"# 指定默认编译器为交叉编译链的 gcc(ARM 架构)
export CC="$CROSS_COMPILE_PATH/aarch64-linux-gnu-gcc"# 指定默认链接器(可选,部分项目需要)
export LD="$CROSS_COMPILE_PATH/aarch64-linux-gnu-ld"
# 重建 m4 目录
mkdir -p m4# 复制 gettext 中的所有宏文件到项目 m4 目录(确保宏文件完整)
cp /home/nanqiu/Desktop/lib/gettext/gettext-0.20.1/my_build_x86/share/aclocal/*.m4 ./m4/
nano m4/ac_lib.m4
写入
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
[AC_ARG_WITH([libdir],AS_HELP_STRING([--with-libdir=DIR], [install library files in DIR [[PREFIX/lib]]]),[libdir=$withval], [libdir='${exec_prefix}/lib'])AC_SUBST(libdir)
])AC_DEFUN([AC_LIB_RPATH],
[AC_ARG_ENABLE([rpath],AS_HELP_STRING([--disable-rpath], [do not hardcode runtime library paths]),[enable_rpath=$enableval], [enable_rpath=yes])if test "x$enable_rpath" = "xyes"; thenRPATH_FLAGS="-Wl,-rpath,$libdir"elseRPATH_FLAGS=""fiAC_SUBST(RPATH_FLAGS)
])AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
[AC_REQUIRE([AC_LIB_PREPARE_PREFIX])LDFLAGS="$LDFLAGS -L$libdir $RPATH_FLAGS"
])AC_DEFUN([AC_LIB_APPENDTOVAR],
[eval "$1=\"\$$1 $2\""
])
# 确保 build-aux 目录存在
mkdir -p build-aux# 从你的 gettext 编译目录复制 config.rpath 文件
cp /home/nanqiu/Desktop/lib/gettext/gettext-0.20.1/my_build_x86/share/gettext/config.rpath ./build-aux/
2.2.2
sudo apt update && sudo apt install autoconf-archive
# 清理缓存并重新生成
rm -rf autom4te.cache/
autoreconf -i -f -v -I ./m4
2.2.3
./configure \--disable-glib \--with-unixodbc=/home/nanqiu/Desktop/lib/obdc/unixODBC-2.3.7/arm64 \--prefix=$(pwd)/mybuild \--host=aarch64-linux-gnu \--build=x86_64-pc-linux-gnu \LDFLAGS="-L/home/nanqiu/Desktop/lib/obdc/unixODBC-2.3.7/arm64/lib" \CPPFLAGS="-I/home/nanqiu/Desktop/lib/obdc/unixODBC-2.3.7/arm64/include"
2.3 编译
make LDFLAGS="-L/home/nanqiu/Desktop/lib/obdc/unixODBC-2.3.7/arm64/lib -Wl,-rpath-link=/home/nanqiu/Desktop/lib/obdc/unixODBC-2.3.7/arm64/lib"
2.4 安装
结果在