精华内容
下载资源
问答
  • 交叉编译环境的搭建方法
    2022-01-24 13:52:45

    写在前面
    对于小白,想编译树莓派内核时,会全网搜搭建树莓派交叉编译环境的方法,各种博客也讲的挺清楚的,不过都太麻烦。

    最简单的树莓派交叉编译环境搭建方法

    参考官方文档:https://www.raspberrypi.com/documentation/computers/linux_kernel.html#cross-compiling-the-kernel

    • 安装依赖
      sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
    • 为 32 位内核安装 32 位工具链
      sudo apt install crossbuild-essential-armhf
    • 为 64 位内核安装 64 位工具链
      sudo apt install crossbuild-essential-arm64

    至此编译所需要的arm-linux-gnueabihf-gcc(32位)或 aarch64-linux-gnu-gcc(64位)就已经搭建好了。
    省去了下载tools,添加环境变量等等操作。
    后面配置构建,编译方法等文档里都有说明,而且很详细。

    参考官方文档才是王道!!!

    更多相关内容
  • 飞腾交叉编译环境搭建之交叉编译工具链配置
  • qt4.7.0 交叉编译环境搭建经验总结交叉编译环境搭建经验总结​ 今天,我们的项目基本方案基本确定了——基于安卓系统下位机软件开发。尽管并不是基于linux+qt的开发,但也是在意料之中的事情,不得不承认,linux+qt...
  • qt交叉编译环境搭建方法
  • 前言在 2020.11.20 日以前正点原子出厂 I.MX6U 出厂系统的 Qt 版本是 5.6.2 版本的。我们在2020.11.20 已经将它升级为 Qt
  • I.MX6U Qt 交叉编译环境搭建V1.0 V1.0版本 2019年10月26日
  • Qt5.6交叉编译环境搭建
  •  但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独拿出一台PC机(PII以上即可,就用以前淘汰的旧机器就可以),在该PC上安装桌面的Linux操作系统(如Red Hat Linux 8.0及以上),可以采用默认的...
  • 交叉编译环境搭建

    2022-02-16 17:43:58
    交叉编译环境搭建 文章目录交叉编译环境搭建一、安装交叉编译工具链和`QEMU`二、下载最小文件系统解压根文件系统修改根文件系统进入根文件系统三、设置`toolchain.cmake`常见问题参考文档 一、安装交叉编译工具链和...

    交叉编译环境搭建

    一、安装交叉编译工具链和QEMU

    sudo apt install gcc-5-aarch64-linux-gun
    sudo apt install g++-5-aarch64-linux-gun
    sudo apt install gdb-multiarch
    
    sudo apt install qemu-user-static
    sudo apt install qemu-system-mips
    

    二、下载最小文件系统

    下载地址(清华源)

    下载地址(其它)

    wget –no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/ubuntu-base/releases/16.04.6/release/ubuntu-base-16.04.6-base-arm64.tar.gz
    
    解压根文件系统
    mkdir CrossSysroot
    sudo tar -zxvf ubuntu-base-16.04.6-base-arm64.tar.gz -C CrossSysroot
    
    修改根文件系统

    cp -b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录

    # 准备网络
    sudo cp -b /etc/resolv.conf CrossSysroot/etc/resolv.conf
    # 准备qemu
    sudo cp /usr/bin/qemu-aarch64-static CrossSysroot/usr/bin/
    
    进入根文件系统
    sudo chroot ubuntu
    
    # 可以更换国内源,然后update,然后安装拟安装的包
    apt update
    apt install git vim ...
    

    三、设置toolchain.cmake

    设置了CMAKE_SYSTEM_NAME变量后CMAKE_CROSSCOMPILING 会自动被设置为 TRUE,此时 cmake就会“知道“现在执行的是交叉编译

    # 操作系统名称,必需(Linux,QNX,WindowsCE,Android)
    # 如果没有操作系统,那么就写 Generic
    set(CMAKE_SYSTEM_NAME Linux)
    # 操作系统处理器架构
    set(CMAKE_SYSTEM_PROCESSOR aarch64)
    # cmake 无法自动获取目标机器信息,因此需要显式指明编译工具
    set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc-5)
    set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++-5)
    # 一般设置为工具链的sysroot目录 
    set(CMAKE_SYSROOT ${CMAKE_CURRENT_LIST_DIR})
    ## set(CMAKE_FIND_ROOT_PATH path1 path2 path3 ...)
    # NEVER:不会在指定的目录中寻找
    # ONLY:只会从指定的目录中寻找
    # BOTH:优先从指定的目录中寻找,再从默认的目录中寻找
    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
    
    set(CMAKE_PREFIX_PATH ${CMAKE_SYSROOT}/yourPath)
    set(ENV{PKG_CONFIG_LIBDIR} ${CMAKE_SYSROOT}/usr/lib/aarch64-linux-gnu/pkgconfig)
    

    常见问题

    • 绝对路径该相对路径
    • 软链接重新链接

    参考文档

    ubuntu16.04最小根文件系统制作及集成安装ros-kinetic-ros-base及遇到的各种坑

    ros-kinetic-ros-base及遇到的各种坑](https://blog.csdn.net/u012572552/article/details/104408372)

    【原创】从Ubuntu-base构建ubuntu rootfs系统(以x86_64和arm为例)

    展开全文
  • ubuntu下mingw32交叉编译环境搭建,包含详细的步骤和执行命令行。
  • ARM 交叉编译环境搭建

    2021-11-15 16:20:49
    apt-get install gcc-arm-linux-gnueabi 一句话能搞定的事,没必要手动编译

    apt-get install gcc-arm-linux-gnueabi

    一句话能搞定的事,没必要手动编译

     

    展开全文
  • 【正点原子】I.MX6U 出厂系统Qt交叉编译环境搭建V1.4.pdf
  • 里面有arm-Linux-gcc-4.5.1版本编译器,在redhat5.5环境亲自测试过,当然也适用ubuntu环境搭建
  • ==怎样为Linux内核打补丁.pdf ==自己实验建立交叉编译工具链.pdf ==交叉编译场景(arm-linux)分析.pdf ==如何为嵌入式开发建立交叉编译环境.pdf ==Ubuntu 9.10上建立ARM-Linux交叉编译环境.pdf
  • 交叉编译环境搭建与测试

    千次阅读 2021-01-23 14:24:18
    ​ 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。 简单地说,就是在一个平台上生成另一个平台上的可执行代码。 这里需要...

    一、什么是交叉编译

    ​        在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。

    简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:

      1. 体系结构(Architecture)

      2. 操作系统(OperatingSystem)。

    同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说:

        我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。

    ​    要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(crosscompilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下:

     1、在Windows PC上,利用ADS(ARM 开发环境),使用armcc编译器,则可编译出针对ARM CPU的可执行代码。

     2、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。

     3、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARM CPU的可执行代码。

    1.1、为什么要使用交叉编译

        有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;

        有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;

        有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。

    1.2 、本地编译和交叉编译的比较

        本地编译:本地编译可以理解为,在当前编译平台下,编译出来的程序只能放到当前平台下运行。平时我们常见的软件开发,都是属于本地编译。比如,我们在 x86 平台上,编写程序并编译成可执行程序。这种方式下,我们使用 x86 平台上的工具,开发针对 x86 平台本身的可执行程序,这个编译过程称为本地编译。

        交叉编译:交叉编译可以理解为,在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台(该平台自己不能干,所以让其它平台来干)上,但是编译平台本身却不能运行该程序。比如,我们在 x86 平台上,编写程序并编译成能运行在 ARM 平台的程序,编译得到的程序在 x86 平台上是不能运行的,必须放到 ARM 平台上才能运行。

    二、交叉编译环境搭建

    NDK官网地址:NDK 下载  |  Android NDK  |  Android Developers

    本人采用ubuntu系统环境搭建,其他版本linux指令请自行百度参照,这里贴上我使用的ubuntu的下载连接 提取码:nbc3

    注:谷歌在ndk-r18以后采用clang编译器,已经不支持gcc了,所以下载时要选择r19及以上的版本进行下载

    1. 下载NDK,我这里选择当前最新版(北京时间:2021-01-23)

    sudo wget https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip

     2. 解压,执行以下命令,解压ndk(注:系统需已安装unzip)

    unzip android-ndk-r22-linux-x86_64.zip

    3. 添加系统环境变量

            3.1 执行sudo vim etc/profile命令打开配置文件

            3.2 点击按键 i 进入编辑,通过键盘方向键,将光标移动到文件最下面

            3.3 写入以下配置

            3.4 修改NDK_HOME的路径为你解压的真实路径

            3.5 修改完毕,点击左上角按键Esc退出编辑,输入:wq保存

            3.6 执行source /etc/profile命令使配置生效

    #ndk home
    export NDK_HOME=/root/ndk/android-ndk-r21d
    export SYSROOT="$NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/"
    export ANDROID_GCC="$NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android24-clang"
    export PATH=$PATH:$NDK_HOME

    其中:

        NDK_HOME为ndk根路径

        ANDROID_GCC为手机编译路径,稍后会用到

    4.验证配置

    执行$NDK_HOME命令,如响应出NDK目录,即代表NDK环境配置成功

    三、测试

    1. 写main.cpp文件

    执行sudo vim main.cpp命令,进入编辑模式,编辑内容如下,编辑完成,保存退出

    #include <stdio.h>
    
    int main()
    {
        printf("hello world\n");
        return 0;
    }

    保存完毕后,使用ls查看指令可以看到已经生成了main.cpp文件,如图

    2. 写交叉编译脚本 generate.sh

    由于这里命令比较短,也可直接在命令行里写,这里还是将内容写到脚本中,步骤如下:

            2.1 执行sudo touch generate.sh命令创建generate.sh文件

            2.2 执行sudo chmod +x generate.sh赋予执行权限
            2.3 执行sudo vim generate.sh命令,进入编辑模式,编辑内容如下,编辑完成,保存退出

    $NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android26-clang++ main.cpp -o hello
    
    或者
    buidl(){
        $NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android26-clang++ main.cpp -o hello    
    }
    build

    其中:

     NDK_HOME为自己解压的目录。
     编译器要选择目的终端的架构,这里用的是arm64,所以是aarch64-linux-android。
     编译器要选择android的api版本,这里用的是anroid 8.0.0,对应api是26。

     按照官网说明,NDK在r21之后,NDK 默认安装的工具链可供使用。
     可以不需要使用 make_standalone_toolchain.py 脚本生成独立工具链来使用。
     这样使用自带的工具链就比较方便,不用再配置`sysroot`等编译选项。

    3. 交叉编译出可执行程序hello
    执行./generate.sh即可

    注:此时编译生成的文件是无法在x86架构的linux上运行的

    4. push到手机上执行

    执行adb push hello /data/local/tmp

    5. 给hello执行权限
    adb shell
    cd /data/local/tmp
    chmod +x hello

    6.执行hello

    ./hello


    可以看到输出
    hello liera

    本章内容结束,下章讲解linux下使用NDK编译x264库

    展开全文
  • Ubuntu 14.04 交叉编译环境搭建,嵌入式开发环境的搭建
  • uboot 开发手册 交叉编译环境搭建+交叉编译工具+uboot源码
  • 53-嵌入式交叉编译环境搭建(4)--Samba服务器设置.pdf 学习资料 复习资料 教学资源
  • vs与linux的交叉编译环境搭建vs与linux的交叉编译环境搭建很久之前就想写一个linux服务器,但是对linux的vim编译工具又不是很熟,只能在win环境下写好代码拷贝到linux环境下编译运行,现在VS出了一个插件可以对linux...
  • linux交叉编译环境搭建: 1.交叉编译简单讲就是不同平台间的编译。 1):Linux系统上可通过安装: sudo apt-get install gcc-arm-linux-gnueabihf 2)工具链下载地址:https://www.linaro.org/downloads/ 2.安装配置...
  • 此文档是关于Linux双系统的搭建 交叉编译环境搭建
  • 一、博主的环境: ** 用VMware15创建的虚拟机 版本:ubuntu16.04 交叉编译器:arm-linux-gcc-4.4.3.tar.gz 如果懒得找的话,打开下边神奇的传送门就可以了哦(顺便点个赞,也是蛮不错的): 链接:...
  • 搭建ARM交叉编译环境

    千次阅读 2021-09-24 16:48:46
    Window下基于eclipse搭建ARM交叉编译环境 文章目录Window下基于eclipse搭建ARM交叉编译环境前言一、安装相关工具二、Eclipse创建工程三、Eclipse+JLink调试代码 前言 一、安装相关工具 二、Eclipse创建工程 三、...
  • 由于ZYNQ芯片里面的处理器是ARM架构,因此在PC上编译U-BOOT或者Linux内核的时候,需要安装用于编译ARM架构芯片的GCC编译器,本文接下来介绍如何在Ubuntu系统上安装开发ZYNQ新的编译环境。 一、下载GCC编译器 从...
  • Ubuntu14.04下arm-linux-gcc交叉编译环境搭建:http://blog.csdn.net/hebbely/article/details/53992805 以前可以看到很多CSDN资源都是免积分下载的,我就搞不懂了,CSDN为什么要搞到所有东西都要积分,免积分多好,...
  • 嵌入式Linux交叉编译环境搭建.ppt
  • ubuntu 搭建交叉编译环境

    千次阅读 2020-07-22 11:00:34
    安装 g+±aarch64-linux-gnu 交叉编译器 $sudo apt install g++-aarch64-linux-gnu #安装 $aarch64-linux-gnu-g++ -v #查看默认安装的gcc版本 $sudo apt install cmake-gui #安装 cmake-gui 有些需要选择性编译的库...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,652
精华内容 6,660
热门标签
关键字:

交叉编译环境的搭建方法