- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
构建嵌入式Linux编译环境 什么是交叉编译? 在嵌入式开发中经常会提到交叉编译的概念,那么究竟什么是交叉编译呢? 交叉编译就是,在一种体系结构下的机器上编译出能够在另外一种体系结构下运行的应用程序的编译过程 交叉编译器从何而来? 交叉编译器是通过编译一系列GNU工具及库文件得到的,这些工具包括: Binutils: GNU的一个工具包,其中包括汇编器、连接器、归档器等等一系列工具 Gcc:主要提供C语言编译器,同时还支持其它多种语言 Glibc:提供标准的C/C++库 Kernel include files:为建立bootstrap gcc提供内核头文件 构建编译环境的整体流程 构建步骤 下载Binutils、gcc、glibc以及内核源代码,和针对该版本的补丁 通过本机上的gcc编译Binutils,生成汇编器、连接器等编译工具 编译gcc源码生成bootstrap gcc,用来编译glibc 使用bootstrap gcc结合glibc和内核源码,便以生成glibc的标准c库 再次编译gcc源码,生成完整的gcc编译器,包含g++编译器 详细步骤(一) 下载Binutils、gcc、glibc、内核源代码及相关版本的补丁 所有的GNU工具都可以到GNU的官方网站上下载 内核源代码下载地址 / 针对ARM体系机构的补丁 .uk/ 详细步骤(二) 建立工作目录 为了使我们的编译结果更清晰,更规范,我们就必须建立一列的工作目录 详细步骤(二) 声明环境变量 详细步骤(二) 建立build-tools下子目录 为了把源码和编译时生成的文件分开,一般的编译工作不在的源码目录中,要另建一个目录来专门用于编译 详细步骤(二) 将各个工具包的源代码放置在build-tools 目录下 解压缩各个工具包 详细步骤(三) 配置内核并生成内核头文件 对内核源码下include目录进行修改 详细步骤(三) 配置内核生成头文件 生成所需的内核头文件 详细步骤(三) 安装内核头文件到$TARGET_PREFIX目录下 详细步骤(四) 编译并安装Binutils 详细步骤(五) 修改 gcc配置内容 修改gcc-2.95.3源码中gcc/config/arm/t-linux文件的配置内容。 修改TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer -fPIC配置内容为: 详细步骤(五) 编译并安装bootstrap gcc 详细步骤(六) 建立glibc库 为glibc打补丁 详细步骤(六) 配置glibc 详细步骤(六) 修改$TARGET_PREFIX/lib 目录下的libc.so 修改前 修改后 原因 这样修改以后链接器ld就会在libc.so目录下搜索它所需要的库 详细步骤(七) 建立完整的gcc 工具链结构 博创科技 嵌入互动 ? 2006 博创科技 ? 2006 博创科技 北 京 博 创 兴 业 科 技 有 限 公 司 BEIJNG UNIVERSAL PIONEERING TECHNOLOGY Co . , LTD 博创科技 嵌入互动 $pwd /home/liang $mkdir embedded $cd embedded $mkdir build-tools kernel tools $ls build-tools kernel tools 总的工作目录 编译工具目录 内核源码目录 生成工具链目录 $export PRJROOT=/home/zxt/embedded $export TARGET=arm-linux $export PREFIX=$PRJROOT/tools $export TARGET_PREFIX=$PREFIX/$TARGET $export PATH=$PREFIX/bin:$PATH $cd $PRJROOT/build-tools $mkdir build-binutils build-boot-gcc build-gcc build-glibc gcc-patch 编译binutils的目录 编译bootstrap gcc的目录 编译全部gcc的目录 编译glibc的目录 gcc补丁 $ls binutils-2.10.1.tar.bz2 build-gcc gcc-patch build-binutls build-glibc glibc-2.2.3.tar.gz build-boot-gcc gcc-2.
您可能关注的文档
最近下载
- 创新农村公共服务管理模式,推进乡村振兴.pptx VIP
- 学校食堂承包经营及餐饮服务投标方案(技术方案).pdf
- 2022年中国银行公司客户经理考试总题库.doc
- 中国哲学史12-两汉经学.ppt VIP
- 中国康复类医疗器械产业加速腾飞,正迎来黄金发展期——2023大型现状调查报告(先进制造2024前沿第9期).docx
- 电力系统继电保护及安全自动装置运行评价规程 QGDW 10395-2022.docx VIP
- 锚杆静压桩施工设计方案.doc VIP
- 早产儿贫血诊断与治疗的临床实践指南(2025年).pptx VIP
- (高清版)DG∕TJ 08-88-2021 建筑防排烟系统设计标准.pdf VIP
- 《寄生虫学检验》课件——结膜吸吮线虫.pptx VIP
文档评论(0)