当前位置: 首页 > news >正文

LINUX高通平台交叉编译地图软件PROJ

  • 准备工作

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
http://www.jsqmd.com/news/1113157/

相关文章:

  • 多维聚合实战:从OLAP立方体到语义层的全链路解析
  • 二级分销爆单的“财务噩梦”:为什么微商城一卡,老板的钱就被多提现了?
  • IIS短文件名漏洞:原理、检测与彻底修复实战指南
  • Django分页封装
  • 近期零基础量化,工具重点要跟着阶段变
  • 马尔可夫链与HMM工程实战:从状态设计到生产部署
  • 组件类型-Props-Emits-Ref
  • 一次性讲清楚 Node.js 事件循环(Event Loop)
  • Selenium自动化测试与动态网页爬虫实战指南
  • 二十年只为超越,ROG玩家国度与蜘蛛侠共赴英雄新章
  • 搭建微信电商小程序要多少钱:定制和SaaS商城怎么选更适合实体店
  • ThinkPad风扇控制终极指南:TPFanCtrl2实现128级无级调速与智能温控
  • DALL·E Mini本地部署实战:轻量级文本生成图像入门指南
  • CPPM注册职业采购经理怎么报名?报考条件、费用和证书查询一次说清
  • 梯度下降工程实践:从GPU训练到嵌入式微调的全栈调试指南
  • 2025-2026中国高端门窗十大品牌解析:核心实力与行业发展指南
  • 自动驾驶量产落地的11个关键节点与三大非热点机会
  • 智慧校园运维升级实战:IoT智能锁通断电联动+身份核验解决方案落地
  • 云服务器别只看CPU:一篇讲透带宽、计费与长期成本的实用指南
  • 支付系统重复收费难题:幂等键依赖的四个假设及应对之策
  • 5步快速掌握Godot逆向工程工具:资源提取与脚本反编译终极指南
  • 3分钟掌握BurpCrypto插件:实战DES加密登录接口自动化测试
  • 驾照翻译多少钱?怎么办理?费用明细+正规办理流程保姆级攻略
  • 机器学习生产化落地:四层健康探针实战指南
  • 从提示词工程到 Harness Engineering:打造坚实可靠的 AI 开发系统
  • ZCode对接商汤免费模型全流程教程
  • Python登录小程序开发教程
  • 为什么AI语音机器人要分营销和客服两种
  • 固定式与手持式RFID阅读器选型:工业RFID系统架构与部署分析
  • 国产大模型编码能力实测:DeepSeek-Coder、GLM-4-Code与Kimi-Math-Code工程对比