LINUX高通平台交叉编译地图软件PROJ
2026/7/3 4:17:02 网站建设 项目流程
  • 准备工作

LINUX编译地图软件PROJ-CSDN博客

  • toolchain脚本
set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) # 高通OE交叉编译器前缀 set(TOOLCHAIN_PREFIX "aarch64-oe-linux-") set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) set(CMAKE_AR ${TOOLCHAIN_PREFIX}ar) set(CMAKE_RANLIB ${TOOLCHAIN_PREFIX}ranlib) set(CMAKE_LIBRARY_ARCHIVER ${TOOLCHAIN_PREFIX}ar) # Sysroot路径 set(TOOLCHAIN_SYSROOT "/usr/local/x86-aarch64-toolchain/sysroots/aarch64-oe-linux") set(CMAKE_SYSROOT ${TOOLCHAIN_SYSROOT}) # 交叉查找规则 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) # 编译flag适配高通AArch64 set(CMAKE_C_FLAGS "-march=armv8-a -O2 -Os") set(CMAKE_CXX_FLAGS "-march=armv8-a -O2 -Os -include limits")
  • 编译脚本
SOURCE_ROOT_PATH=`pwd` TOOLCHAIN_PATH=/usr/local/x86-aarch64-toolchain CROSS_NAME=aarch64-oe-linux CROSS_BIN=${TOOLCHAIN_PATH}/sysroots/x86_64-qtisdk-linux/usr/bin/${CROSS_NAME} export PATH=${CROSS_BIN}:${PATH} . ${TOOLCHAIN_PATH}/environment-setup-aarch64-oe-linux . ${TOOLCHAIN_PATH}/environment-setup-aarch64-oe-linux-sdllvm # 配置全局变量 TOOLCHAIN_FILE="${SOURCE_ROOT_PATH}/aarch64-oe.cmake" SYSROOT="${TOOLCHAIN_PATH}/sysroots/aarch64-oe-linux" PROJ_INSTALL_DIR=$HOME/proj_install make clean rm -rf CMakeCache.txt CMakeFiles rm -rf ${PROJ_INSTALL_DIR} BUILD_DIR=build if [ -d ${BUILD_DIR} ]; then rm -rf ${BUILD_DIR} fi mkdir ${BUILD_DIR} cd ${BUILD_DIR} cmake .. \ -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \ -DCMAKE_INSTALL_PREFIX=${PROJ_INSTALL_DIR} \ -DCMAKE_FIND_ROOT_PATH=${SYSROOT} make -j$(nproc) # -j 参数可以加速编译 make install
  • 检查编译结果
$ file libproj.so.25.9.8.1 libproj.so.25.9.8.1: ELF 64-bit LSB shared object, ARM aarch64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=8b831cfdeda88efdcd4bc6f706da272400451831, with debug_info, not stripped

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询