导航:首页 > 源码编译 > armlinux编译linux

armlinux编译linux

发布时间:2025-01-26 20:15:21

linuxarm开发需要全部重编译

不需要。
根据查询知乎网显示,在LinuxARM开发中,只需要针对新的ARM架构平台进行编译即可,与ARM架构无关的代码并不需要重新编译。

② 深度linux的arm-linux-gnueabihf-gcc编译参数如何配

一般来说,交叉编译工具是用于在一种架构的主机(例如x86)上,编译另一种主机(例如arm)运行的程序,在这个编译期间,需要用到的头文件/库,往往需要从一个叫目标文件系统(sysroot)的路径开始查找。

sysroot里包含usr,lib,usr/lib usr/include等文件夹结构和必要的头文件和库,你理解为目标机器上的整个文件系统,搬到你这台电脑上,然后作为一个文件夹存在。

交叉编译原则上不能用主机(host)的头文件,

交叉编译一般无法使用主机的库(so)文件

最后结论:你这个问题,如果你是为了另一套机器(比如arm开发板编译),那么需要搞一套目标机的文件系统才能顺利编译。

对了,目标文件系统需要编译了python和dev头文件/库,好多嵌入式设备裁剪的很厉害,都不用python。

③ arm-linux 交叉编译环境的建立,希望有清楚的人解答,复制的闪人

是这样子的,计算机linux中原有的gcc是针对通用的X86等处理器而言的,编译出来的可执行文件是只能在通用计算机上运行的,arm也是一种处理器,只不过其指令等和X86等CPU不同,所以需要有针对arm的编译器来编译源程序,才能在arm中运行。
我在arm9下做过linux,qt编程,需要先在PC上安装linux,然后安装arm-linux-gcc,同时为了可以使用arm-linux-gcc来编译程序,需要指定环境变量,这个可以在.profile等文件中进行更改,具体办法你查一下就知道了。或者使用export命令在终端中设置环境变量。两种方法的结果有区别哦!
你想用2440的开发板的话就是arm9了,我还没找到arm9的仿真工具,但是网上已经有arm7的仿真工具。
对于arm-linux-gcc,只要你安装好并设置好了路径(环境变量)后,在一个终端中输入#arm-linux-gcc -v
那么你一般可以看到你安装的arm-linux-gcc 版本信息,到此你就可以使用它编译你的源程序,然后将生成的可执行文件下载到arm开发板中就可以运行了。
还有什么问题再说吧,我也是一个人摸索出来的,估计摸索了一个月才成功的在arm上运行了第一个自己的qt图形界面程序,祝你好运!
我的建议:
一、熟悉linux 的各种操作命令(如export)
二、学会怎么下载可执行文件到arm中
三、学会用pc控制arm上的linux

我只用过arm-linux-gcc,在你的安装文件夹下可以找到

④ 如何建立针对arm-linux的交叉编译环境

采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行。
linux下的交叉编译环境重要包括以下几个部分:
1.对目标系统的编译器gcc
2.对目标系统的二进制工具binutils
3.目标系统的标准c库glibc
4.目标系统的linux内核头文件
交叉编译环境的建立步骤
一、下载源代码 下载包括binutils、gcc、glibc及linux内核的源代码(需要注意的是,glibc和内核源代码的版本必须与目标机上实际使用的版本保持一致),并设定shell变量PREFIX指定可执行程序的安装路径。
二、编译binutils 首先运行configure文件,并使用--prefix=$PREFIX参数指定安装路径,使用--target=arm-linux参数指定目标机类型,然后执行make install。
三、配置linux内核头文件
首先执行make mrproper进行清理工作,然后执行make config ARCH=arm(或make menuconfig/xconfig ARCH=arm)进行配置(注意,一定要在命令行中使用ARCH=arm指定cpu架构,因为缺省架构为主机的cpu架构),这一步需要根据目标机的实际情况进行详细的配置,笔者进行的实验中目标机为HP的ipaq-hp3630 PDA,因而设置system type为SA11X0,SA11X0 Implementations中选择Compaq iPAQ H3600/H3700。
配置完成之后,需要将内核头文件拷贝到安装目录: cp -dR include/asm-arm $PREFIX/arm-linux/include/asm cp -dR include/linux $PREFIX/arm-linux/include/linux
四、第一次编译gcc
首先运行configure文件,使用--prefix=$PREFIX参数指定安装路径,使用--target=arm-linux参数指定目标机类型,并使用--disable-threads、--disable-shared、--enable-languages=c参数,然后执行make install。这一步将生成一个最简的gcc。由于编译整个gcc是需要目标机的glibc库的,它现在还不存在,因此需要首先生成一个最简的gcc,它只需要具备编译目标机glibc库的能力即可。
五、交叉编译glibc
这一步骤生成的代码是针对目标机cpu的,因此它属于一个交叉编译过程。该过程要用到linux内核头文件,默认路径为$PREFIX/arm-linux/sys-linux,因而需要在$PREFIX/arm-linux中建立一个名为sys-linux的软连接,使其内核头文件所在的include目录;或者,也可以在接下来要执行的configure命令中使用--with-headers参数指定linux内核头文件的实际路径。
configure的运行参数设置如下(因为是交叉编译,所以要将编译器变量CC设为arm-linux-gcc): CC=arm-linux-gcc ./configure --prefix=$PREFIX/arm-linux --host=arm-linux --enable-add-ons 最后,按以上配置执行configure和make install,glibc的交叉编译过程就算完成了,这里需要指出的是,glibc的安装路径设置为$PREFIXARCH=arm/arm-linux,如果此处设置不当,第二次编译gcc时可能找不到glibc的头文件和库。
六、第二次编译gcc
运行configure,参数设置为--prefix=$PREFIX --target=arm-linux --enable-languages=c,c++。
运行make install。
到此为止整个交叉编译环境就完全生成了。
几点注意事项
第一点、在第一次编译gcc的时候可能会出现找不到stdio.h的错误,解决办法是修改gcc/config/arm/t-linux文件,在TARGET_LIBGCC2_CFLAGS变量的设定中增加-Dinhibit_libc和-D__gthr_posix_h。

阅读全文

与armlinux编译linux相关的资料

热点内容
安卓充电为什么这么慢 浏览:570
外包程序员的看法 浏览:306
标志207压缩机 浏览:585
java设计模式面试 浏览:340
一停就是命令 浏览:480
程序员在线观看国语全集 浏览:815
公文命令范文文号 浏览:738
goprohero5语音命令 浏览:109
有关java的书籍 浏览:167
svn服务器设置地址 浏览:40
网云IOCP服务器mysql 浏览:165
汽车压缩机异响维修 浏览:625
白云飘动特效源码 浏览:833
autojs脚本合集源码 浏览:442
如何配置发件服务器地址 浏览:38
100个选股公式源码 浏览:768
安卓手机截图怎么压缩 浏览:707
股票副图成交金额公式源码大全 浏览:429
服务器状态事件是什么意思 浏览:401
怎么连接到服务器打印机 浏览:539