0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux交叉编译选项与源码与目标文件分离

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-09-27 11:48 次阅读

交叉编译选项

编译Linux,通常只需要运行make menuconfig配置要编译的模块,然后运行make。Linux默认是做本地编译,也就是编译位本机使用的内核。

嵌入式开发中,经常需要交叉编译,要做交叉编译的话,需要在make命令后加上宏定义,如交叉编译为arm目标:

makeARCH=armCROSS_COMPILE=arm-linux-

ARCH=arm:表示目标CPU为ARM架构

CROSS_COMPILE=arm-linux-

表示编译过程使用的交叉编译链为arm-linux

当然也可以直接修改Makefile中的ARCHCROSS_COMPILE宏定义,以此实现同样的效果。但是不建议直接修改Makefile

源码与目标文件分离

Linux内核编译过程会产生很多的文件,包括目标文件、临时文件等等,默认情况下,编译生成的文件会存放在内核源码目录

当你使用git status显示自己对内核代码的修改时也会把这些临时文件显示出来,而且提交还必须一个文件一个文件地指定,相当麻烦。

因此我们可以在父目录创建一个存放编译文件的目录,如build-kernel,然后再make命令后面加上宏定义:

makeO=../build-kernel

这样在编译Linux内核时,所有编译产生的文件,都会放在build-kernel目录,如果build-kernel目录不存在,也会自动创建。这样可以实现Linux内核源码与编译产生的文件分离。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1382

    浏览量

    40414
  • Linux
    +关注

    关注

    87

    文章

    11342

    浏览量

    210335
  • 源码
    +关注

    关注

    8

    文章

    652

    浏览量

    29437
  • 编译
    +关注

    关注

    0

    文章

    661

    浏览量

    33032
收藏 人收藏

    评论

    相关推荐

    Linux系统下交叉编译工具链的安装方法

    今天主要和大家聊一聊,如何使用Linux系统下的交叉编译工具链的方法。
    发表于 11-21 09:30 3566次阅读

    linux操作系统交叉编译环境的建立方法

    基于linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核
    发表于 04-16 09:22

    Linux操作系统交叉编译环境的建立方法

    基于linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核
    发表于 07-15 15:05

    Linux QT5程序编译准备源码

    Linux QT5程序编译准备源码  打开网盘到 5_MY-Demo,下载 MY-Linux-QT5-Demo-AboutUs-svn*.tar.bz2
    发表于 03-08 11:27

    瑞芯微RK3568开发板源码编译交叉编译环境搭建

    S99myinit文件,写入如下内容即可实现开机自动连网:#!/bin/sh这里注意要替换为自己的WiFi名和密码,并且要给这个文件可执行权限。02RK3568 Linux源码
    发表于 02-27 08:52

    交叉编译linux内核(raspberry_3.6.y)

    一步一步教你交叉编译linux内核,RPI的内核编译教程,小众的东西了
    发表于 11-03 17:58 0次下载

    arm-linux交叉编译环境解析

    的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行。 linux下的交叉
    发表于 10-31 11:26 7次下载

    定制ARM For Linux交叉编译工具详细介绍

    是X86)运行,对于ARM开发者来说,需要一个能在本机编译、但编译却生成ARM运行代码的一套交叉编译工具集。 因此,选择一个与本机工具集相异的特定含义的
    发表于 04-02 14:38 418次阅读

    判断Linux文件编译时是否运用-g选项的方法

    判断Linux文件编译时是否运用-g选项的方法
    的头像 发表于 06-22 08:40 3502次阅读
    判断<b class='flag-5'>Linux</b>库<b class='flag-5'>文件</b><b class='flag-5'>编译</b>时是否运用-g<b class='flag-5'>选项</b>的方法

    Linux】嵌入式Linux系统的移植(上篇:交叉编译器、连接方式)

    的移植要点搭建交叉开发环境bootloader的选择与移植kernel的设置、编译、移植和调试根文件系统的制作嵌入式Linux系统的移植基本步骤确定
    发表于 11-01 16:57 14次下载
    【<b class='flag-5'>Linux</b>】嵌入式<b class='flag-5'>Linux</b>系统的移植(上篇:<b class='flag-5'>交叉</b><b class='flag-5'>编译</b>器、连接方式)

    嵌入式Linux的内核编译

    编译工具链,在此就不再赘述。编写Linux内核需要内核源码和内核编译配置文件kernel_config,如下图:具体
    发表于 11-01 17:07 19次下载
    嵌入式<b class='flag-5'>Linux</b>的内核<b class='flag-5'>编译</b>

    嵌入式Linux开发环境搭建-(6)交叉编译QT4.8.7源码生成qmake工具

    ,我们需要自己手动编译QT源码,生成qmake。编译前准备:确保交叉编译器版本是arm-linux
    发表于 11-02 13:21 3次下载
    嵌入式<b class='flag-5'>Linux</b>开发环境搭建-(6)<b class='flag-5'>交叉</b><b class='flag-5'>编译</b>QT4.8.7<b class='flag-5'>源码</b>生成qmake工具

    STM32MP157 Linux系统移植开发篇8:Linux内核配置方法及编译

    Linux内核配置及编译解压内核建立源码目录该目录下以patch结尾的文件为ST官方提供的补丁文件li
    发表于 12-04 21:06 9次下载
    STM32MP157 <b class='flag-5'>Linux</b>系统移植开发篇8:<b class='flag-5'>Linux</b>内核配置方法及<b class='flag-5'>编译</b>

    Linux应用开发-串口下载命令rzsz交叉编译

    rz/sz工具是通过Zmodem协议传输文件的命令,常用于Linux与windows之前的数据传输。 这篇文章就介绍如何在交叉编译rz/sz命令,并在
    的头像 发表于 08-14 09:20 2587次阅读

    Linux内核编译脚本

    获得编译命令及选项 编译linux时,默认不会显示编译的命令,如果你要获得编译命令及其
    的头像 发表于 09-27 11:52 687次阅读