win7交叉编译arm
① 如何交叉编译期待ARM
找到所有的 AC_MSG_ERROR的([期待不能跨编译])在 configure.in 行,替换他们用硬$ C $裁线是连接codeS“正确”的答案。
所以,有做的第一件事:如果你还在应用修补程序后,收到这个错误,那么这个补丁必须错过之一;你应该找到它,解决它了。
要检查的另一件事是沿着“是它插入”行 - 你办好相关自动工具正确再生配置修补后文件中的 configure.in 文件?它看起来像这些补丁只打补丁 configure.in ,所以如果你没有做你的再生会不会改变实际运行任何东西。
一旦你过去的即时错误,另外还有一点,你找到了修补程序都是TimeSys公司的linux(按名称),这可能会或可能不会匹配您的系统 - 和,特别是可能甚至不是一个ARM系统。 (我看到,现在TimeSys的支持ARM,但我与他们的熟悉程度为PowerPC)。由于它与硬codeD答案更换自动测试,这些问题的答案很容易被错误的。我建议你检查各种线路在补丁改变,以确认他们的答案在硬件实际上是正确的code。
② 如何交叉编译出arm
arm交叉编译就是在非arm平台编译arm平台运行的代码, 需要安装交叉编译工具, 比如x86平台上的arm gcc工具. 之后配置gcc为 该编译命令gcc-arm....编译结果下载到arm就可以运行了.
③ 如何设置arm开发板交叉编译工具链
如何设置arm开发板交叉编译工具链
1.13.6 Compile菜单
按Alt+C可进入Compile菜单, 该菜单有以下几个内容,如图所示:
1. Compile to OBJ:将一个C源文件编译生成.OBJ目标文件, 同时显示生成的文件名。其热键为 Alt+F9。
2. Make EXE file:此命令生成一个.EXE的文件, 并显示生成的.EXE文件名。其中.EXE文件名是下面几项之一:
1) 由Project/Project name说明的项目文件名。
2) 若没有项目文件名, 则由Primary C file说明的源文件。
3) 若以上两项都没有文件名, 则为当前窗口的文件名。
3. Link EXE file:把当前.OBJ文件及库文件连接在一起生成.EXE文件。
4. Build all:重新编译项目里的所有文件, 并进行装配生成.EXE文件。该命令不作过时检查 (上面的几条命令要作过时检查, 即如果目前项目里源文件的日期和时间与目标文件相同或更早, 则拒绝对源文件进行编译)。
5. Primary C file:当在该项中指定了主文件后, 在以后的编译中, 如没有项目文件名则编译此项中规定的主C文件, 如果编译中有错误, 则将此文件调入编辑窗口, 不管目前窗口 中是不是主C文件。
6. Get info:获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息,如图:
1.13.7 Project菜单
④ 如何交叉编译开源库
所谓的搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。
交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链;arm-linux-gcc表示是使用gcc的编译器。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的gcc相同,所以Linux编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。
那么gcc和arm-linux-gcc的区别是什么呢?区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机(如ARM平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。
工具/原料
电脑系统:win7系统。虚拟机系统:workstation6.5 。虚拟机安装的linux版本:fedora9.0。内核:linux2.6.25 。
方法/步骤
1
我使用的交叉编译工具链是arm-linux-gcc-4.4.3,把它放在linux系统的路径是图一
2
在linux系统的路径/home/song/share下放了交叉编译工具链arm-linux-gcc-4.4.3的压缩包,另一个版本的不用。有的人可能会问到怎么把这个压缩包弄到虚拟机的linux的系统的,我是通过samba服务从主机复制到虚拟机的,这里的share文件夹就是我samba服务器的工作目录,多了不说,这不是重点。
然后通过命令mkdir embedded 建立一个arm-linux-gcc的安装目录,如图二所示。当然安装路径和目录名称“embedded”可以依自己的喜好而定。
步骤阅读
然后通过命令将share文件夹下的arm-linux-gcc-4.4.3.tar.gz复制到这里的embedded文件夹下, 当然这里你也可以不进行这一步我这是为了方便以后管理,将arm-linux-gcc安装到embedded文件夹下,方便以后寻找。
然后使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将embedded文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下
执行完解压缩命令,就已经将交叉编译工具链arm-linux-gcc-4.4.3安装到linux系统上了,这里默认安装到了图六所示的路径上。
接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。 vi /etc/profile 编辑profile文件,添加环境变量。
在profile中的位置处,添加图八所示的红线标注的一行,路径就是图六中的红线标注的路径后面加上/4.4.3/bin。
图八中的路径一定是你自己的安装路径,可以使用pwd命令查找一下那个bin目录的路径。添加完路径后,保存退出。接下来使用命令:source /etc/profile,是修改后的profile文件生效,如图九所示。
然后,使用命令:arm-linux-gcc -v查看当前交叉编译链工具的版本信息,如图九中的红线标注第③行所示。很明显 可以看到,如果不执行第②步,则查看版本信息不成功。
然后验证交叉编译工具链是否安装成功并且可以使用,如图九所示,随便找一个目录编辑一个hello源代码。
编辑好hello.c文件后,保存退出。然后使用交叉编译器对hello.c进行编译,并生成可执行文件hello
这里生成的hello文件并不能像gcc编译出来的文件那样直接使用“./hello”命令执行并显示内容 因为它是一个二进制文件,只能下载到开发板上执行!
至此,搭建交叉编译环境步骤结束。
⑤ gcc -arm这个交叉编译工具。有没有可以再window上使用的
yagarto和codesourcery都是在windows下用的,官方已经编译打包好的
EXE文件
cygwin下可以自己编译源代码,做出GNU工具链
mingw也可以实现
还有一些在windows下用的IDE,专门针对GNU工具链的,code::blocks,emide等
我在用emIDE,arm-none-eabi-gdb调试ARM
⑥ 搭建arm的交叉编译环境需要哪些文件
这个过程如下 1. 下载源文件、补丁和建立编译的目录 2. 建立内核头文件 3. 建立二进制工具(binutils) 4. 建立初始编译器(bootstrap gcc) 5. 建立c库(glibc) 6. 建立全套编译器(full gcc) 下载源文件、补丁和建立编译的目录
⑦ Windows下用Cygwin进行ARM的交叉编译MinGW有没有这个功能如何在此环境下编译linux内核
看很多资料都是在虚拟机下运行linux进行的编译,用cygwin好像不好吧。初学mini2440.交流哈。
⑧ 请问arm交叉编译,可以在windows上做吗
有啊,用ads和SDT,ADT等,可以裸机,或者uCOS-II都行。
不过如果是要在arm上linux操作系统,那还是用linux。
⑨ 如何在Windows上建立arm-linux开发环境
在嵌入式产品大行其道的今天,Linux经过裁剪和优化而成的uClinux在嵌入式领域众多的操作系统中占有一席之地。从uClinux字面上就可以看出它的含义,即“微控制器领域中的Linux系统”。
uClinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。uClinux与Linux在兼容性方面表现出色,uClinux除了不能实现fork()外,其余uClinux的API函数与标准Linux完全相同。
uClinux的基本架构
Boot Loader:负责Linux内核的启动,用于初始化系统资源。这部分代码用于建立Linux内核运行环境和从Flash中装载初始化Ramdisk。
内核初始化:Linux内核的入口点是start kernel()函数。它初始化内核的其它部分,包括捕获、IRQ通道、调度、设备驱动、标定延迟循环,最重要的是能够fork“init”进程,以启动整个多任务环境。
系统调用函数/捕获函数:在执行完“init”程序后,内核对程序流不再有直接地控制权。此后,它的作用仅仅是处理异步事件(例如硬件中断)和为系统调用提供进程。
设备驱动:设备驱动占据了Linux内核很大部分。同其它操作系统一样,设备驱动为它们所控制的硬件设备和操作系统提供接口。
文件系统:Linux最重要的特性之一就是对多种文件系统的支持。这种特性使得Linux很容易地同其它操作系统共存。文件系统的概念使得用户能够查看存储设备上的文件和路径而无须考虑实际物理设备的文件系统类型。
交叉编译环境
uClinux是一个出色的开发平台,但是在我们能在电脑上编写自己的嵌入式应用程序之前,还必须做的一件事,就是给uClinux建立完善的编译环境。关于交叉编译,简单地讲是指在一个平台(操作系统)上可以生成能在另一个平台上执行的代码。
但是对于有些不是很懂Linux环境的人来讲,用uClinux开发程序会感到诸多不便。这里提供了在装有Windows系统的宿主机(开发时所用的机器)上建立交叉编译环境的方法。
为了在Windows下开发嵌入式操作系统应用程序,可以在Windows环境下装上Cygwin软件。Cygwin是一个在Windows平台上运行的Unix模拟环境,是Cygnus Solutions公司开发的自由软件。它对于学习掌握Unix/Linux操作环境,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。
Cygnus首先把gcc、gdb等开发工具进行了改进,使它们能够生成并解释WIN32的目标文件。然后,把这些工具移植到Windows平台上去。一种方案是基于WIN32 APl对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,Cygnus采取了一种不同的方法——他们写了一个共享库(就是cygwinl.d11),把WIN32 API中没有的Unix风格的调用(如fork、spawn、signals、select、sockets等)封装在里面。也就是说,他们基于WIN32 APl写了一个Unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用Unix主机上的交叉编译器来生成可以在Windows平台上运行的工具集。以这些移植到Windows平台上的开发工具为基础,Cygnus又逐步把其它的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到Windows上来。这样,在Windows平台上运行bash和开发工具、用户工具,感觉好像在Unix上工作。
生成交叉编译器
Cygwin软件目前最新版本是Cygwin DLL 1.5.9-1。它的网址是http:// Cygwin.com,上面就有该程序的压缩包,下载后解压安装就ok了。
在自己生成交叉编译器之前,首先对Cygwin进行一些设置。假设Cygwin安装在e目录下,在打开Cygwin窗口之前,进入到E:\Cygwin目录。在这个目录下,有一个文件名为Cygwin.bat的批处理文件,编辑该文件,在第一行后加入setCYGWIN--titlentea,这是因为Cygwin的启动批处理文件需要启动Unix文件系统模拟。修改完毕且保存后退出。双击桌面上的Cygwin图标,打开后默认用户为在Windows中登录的用户名(这里所使用的操作系统是Windows 2000 Professsional),在根目录(即E:\cygwin)下输入:
cd bin
mV Sh.exe Sh—original.exe
n —S bash.exe Sh.Exe
做上述几步的原因是大多数Linux系统把sh符号链接到bash,而Cygwin上的sh.exe和bash.exe是不同的,因此必须用bash代替sh。
从网站上下载生成工具链的各种源码,根据脚本文件build-ucLinux-tools.sh建立可在Windows下编译用户应用程序的交叉编译器,生成的交叉编译器最终被打包为arm-elf-tools-cygwin-yyyymmdd.tar.gz的文件,其中YYYY为生成交叉编译器的年,mm为生成交叉编译器的月份,dd为日期。
这里,需要注意的是在生成交叉编译器的过程中,可能会遇到多次错误,读者应该根据给出的出错信息,进行相应文件的修改。由于习惯上的原因,Linux下的压缩文件一般都是以.tar.gz或者.tgz结尾的。虽然用Windows下的解压软件,比如winzip或者winrar也可以解压这些文件,但是不推荐使用这类解压软件,因为可能会造成某些信息的丢失。
⑩ QTcreator能在windows中交叉编译arm平台程序吗
这个估计没必要,安装一个虚拟机,然后安装一个桌面版的里Linux系统,再在系统中安装一个vim编辑器,再安装一个gdb调试器,最后再arm-linux-gcc就可以编译c文件了,要是你的很多源程序文件都在windows系统中,你可以设置Windows与Linux共享文件。这些东西在网上都可以找到教程,刚开始可能觉得Linux系统很不方便,但是要熟悉Linux系统就必须经常呆在Linux系统中,希望能帮到你。