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

    文章

    1309

    浏览量

    39846
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206734
  • 源码
    +关注

    关注

    8

    文章

    573

    浏览量

    28585
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32392
收藏 人收藏

    评论

    相关推荐

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

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

    OpenHarmony开发学习:【源码下载和编译

    本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(`Hi3516`,`Hi3518`和`Hi3861`)的编译环境,以及如何将源码
    的头像 发表于 04-14 09:36 391次阅读
    OpenHarmony开发学习:【<b class='flag-5'>源码</b>下载和<b class='flag-5'>编译</b>】

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

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

    【OK210试用体验】Arm交叉编译环境

    格式的文件(elf转hex、bin等);用size显示目标文件各个节的大小和目标文件的大小;用ar生成库
    发表于 11-01 01:36

    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开发板试用体验】2-RK3568源码编译交叉编译环境搭建

    "wifi_name" -p wifi_password注意要替换为自己的WIFI名和密码,并且要给这个文件可执行权限。2 RK3568 Linux源码编译刚才介绍了只进行C
    发表于 11-27 21:44

    瑞芯微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次下载

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

    判断Linux文件编译时是否运用-g选项的方法
    的头像 发表于 06-22 08:40 3119次阅读
    判断<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 16次下载
    嵌入式<b class='flag-5'>Linux</b>的内核<b class='flag-5'>编译</b>

    嵌入式Linux 交叉编译工具链

    文章目录前言安装arm-linux-gnueabihf检验微信公众号前言这是前2篇:嵌入式Linux i.MX开发板嵌入式Linux NFS.c之类的源码不能直接运行, 需要
    发表于 11-01 17:07 8次下载
    嵌入式<b class='flag-5'>Linux</b> <b class='flag-5'>交叉</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工具