ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

makefile

2022-01-26 10:32:57  阅读:209  来源: 互联网

标签:JOBS 操作系统 makefile 编译 eabi CONFIG arm


交叉编译详解 一 概念篇_p_fly的博客-CSDN博客_交叉编译

  • 本地编译:在当前编译平台下,编译出来的程序只能放到当前平台下运行。
  • 交叉编译:在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序:

交叉编译链就是为了编译跨平台体系结构的程序代码而形成的由多个子工具构成的一套完整的工具集。同时,它隐藏了预处理、编译、汇编、链接等细节,当我们指定了源文件(.c)时,它会自动按照编译流程调用不同的子工具,自动生成最终的二进制程序映像(.bin)

交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]

  • arch - 体系架构,如ARM,MIPS
  • verdor - 工具链提供商
  • os - 目标操作系统
  • eabi - 嵌入式应用二进制接口

根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如

  • arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌 入式系统的C库。
  • arm-none-linux-eabi:用于Linux的,使用Glibc

ABI 和 EABI两者主要区别是,ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)。

  • ABI:在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。
  • EABI:在嵌入式中,应用二进制接口指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。

CROSS_PATH = /opt/gcc-arm-none-eabi-9-2020-q2-update/bin/
CONFIG_CROSS_COMPILE := $(CROSS_PATH)arm-none-eabi-
CONFIG_STRICT_CFLAGS ?= y
CONFIG_SAVE_TARGET ?= n
CONFIG_FORCE_WIN_SHELL ?= y
JOBS :=
ifeq ($(JOBS),)
  JOBS := $(shell grep -c ^processor /proc/cpuinfo 2>/dev/null)
  ifeq ($(JOBS),)
    JOBS := 1
  endif
endif

makefile编译错误情况整理_weixin_33796205的博客-CSDN博客

标签:JOBS,操作系统,makefile,编译,eabi,CONFIG,arm
来源: https://blog.csdn.net/qq_31604659/article/details/122574054

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有