linux平台交叉编译arm64库

13 篇文章 0 订阅

1.构建工程时指定工具链

cmake -DCMAKE_TOOLCHAIN_FILE=/home/…/gnu_arm64.cmake

2.CMAKE_TOOLCHAIN_FILE 交叉编译文件

#工具链文件 gnu_arm64.cmake
set( CMAKE_SYSTEM_NAME Linux )
set( CMAKE_SYSTEM_PROCESSOR arm )

SET(CMAKE_SHARED_LIBRARY_PREFIX "lib")
SET(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
SET(CMAKE_STATIC_LIBRARY_PREFIX "lib")
SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a")

set( SDK "/home/.../gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu" )#指定路径
set( SYS_ROOT "${SDK}/aarch64-linux-gnu/libc" )
set( COMPILER_ROOT "${SDK}/bin" )
set( COMPILER_PREFIX "aarch64-linux-gnu" )

SET(CMAKE_AR           "${COMPILER_ROOT}/${COMPILER_PREFIX}-ar"      CACHE PATH "ar Program")
SET(CMAKE_RANLIB       "${COMPILER_ROOT}/${COMPILER_PREFIX}-ranlib"  CACHE PATH "ranlib Program")
SET(CMAKE_NM           "${COMPILER_ROOT}/${COMPILER_PREFIX}-nm"      CACHE PATH "nm Program")
SET(CMAKE_OBJCOPY      "${COMPILER_ROOT}/${COMPILER_PREFIX}-objcopy" CACHE PATH "objcopy Program")
SET(CMAKE_OBJDUMP      "${COMPILER_ROOT}/${COMPILER_PREFIX}-objdump" CACHE PATH "objdump Program")
SET(CMAKE_LINKER       "${COMPILER_ROOT}/${COMPILER_PREFIX}-ld"      CACHE PATH "Linker Program")
SET(CMAKE_STRIP        "${COMPILER_ROOT}/${COMPILER_PREFIX}-strip"   CACHE PATH "Strip Program")
SET(CMAKE_C_COMPILER   "${COMPILER_ROOT}/${COMPILER_PREFIX}-gcc"   CACHE PATH "GCC")
SET(CMAKE_CXX_COMPILER "${COMPILER_ROOT}/${COMPILER_PREFIX}-g++"   CACHE PATH "G++")

set( CMAKE_FIND_ROOT_ROOT "/home/.../gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu" )#指定路径
SET( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
SET( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a -mtune=cortex-a57.cortex-a53 --sysroot=${SYS_ROOT}" CACHE INTERNAL "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a -mtune=cortex-a57.cortex-a53 --sysroot=${SYS_ROOT}" CACHE INTERNAL "" FORCE)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt是一个跨平台的应用程序开发框架,可以用于开发图形界面和嵌入式应用程序。交叉编译是指在一台主机上编译适用于另一种不同架构的目标平台的程序。在这里,我们将介绍如何使用Qt进行ARM64架构交叉编译。 首先,你需要准备以下工具和环境: 1. Qt开发环境:确保你已经安装了Qt的开发环境,包括Qt Creator和Qt。 2. ARM64交叉编译工具链:你需要下载并安装适用于ARM64架构交叉编译工具链。这个工具链包括了ARM64架构的编译器、链接器等工具。 3. 目标设备的SDK:如果你的目标设备有提供SDK,你需要下载并安装该SDK,以获取目标设备的头文件文件。 接下来,你可以按照以下步骤进行Qt的ARM64交叉编译: 1. 打开Qt Creator,并创建一个新的Qt项目。 2. 在项目设置中,选择“Kits”选项卡,并点击“Add”按钮添加一个新的Kit。 3. 在弹出的对话框中,选择“GCC”编译器,并点击“Next”按钮。 4. 在“Device type”下拉菜单中选择“Generic Linux Device”。 5. 在“Device”下拉菜单中选择“Generic Linux Device”。 6. 在“Sysroot”字段中,填入你的交叉编译工具链的sysroot路径。 7. 在“Compiler path”字段中,填入你的交叉编译工具链的编译器路径。 8. 在“Qt version”字段中,选择你安装的Qt版本。 9. 点击“Finish”按钮完成Kit的设置。 10. 在项目设置中,选择“Build & Run”选项卡,并选择刚刚创建的Kit作为默认的构建套件。 11. 点击“Build”按钮进行编译。 完成以上步骤后,你就可以使用Qt进行ARM64架构交叉编译了。记得在编写代码时,使用适用于ARM64架构的头文件文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值