安装标准的arm-linux-gcc开发环境.doc
《安装标准的arm-linux-gcc开发环境.doc》由会员分享,可在线阅读,更多相关《安装标准的arm-linux-gcc开发环境.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 安装gcc1:首先进入下载arm-elf-gcc-3.2.1-full.tar.bz2 arm-linux-gcc-3.4.3-1.0.1.tar.bz2 两个文件2:找一虚拟器,linux操作系统的,不需要图形界面,直接进入命令操作行(shell环境)注意此虚拟器里面的硬盘空间至少需要2G以上的可用空间3:将arm-elf-gcc-3.2.1-full.tar.bz2 arm-linux-gcc-3.4.3-1.0.1.tar.bz2 两个文件FTP到虚拟器里面,然后进行解压,命令行操作如下:tar xvjf arm-elf-gcc-3.2.1-full.tar.bz2tar xvjf
2、arm-linux-gcc-3.4.3-1.0.1.tar.bz2解压完后会在/usr/local目录看到4:设置搜索路径,命令行操作如下:PATH=/usr/local/arm/3.4/bin:/usr/local/arm/3.2.1-elf/bin:$PATH1.安装标准的C开发环境,由于Red Hat Enterprise Linux安装默认是不安装的,所以需要先安装一下(如果已经安装好的话,就可以免去这一步了): #sudo apt-get install gcc g+ libgcc1 libg+ make gdb 2. 下载arm-linux-gcc-3.4.1.tar.bz2到任意
3、的目录下,我把它下载到了我的个人文件夹里 /home/stevenarm-linux-gcc-3.4.1.tar.bz2 的下载地址如下:http:/www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2(3.4.1这个版本太低了,编译的时候会出现下面的错误:)arm-linux-gcc -c myfpmatch.carm-linux-gcc -o myfpmatch myfpmatch.o c_serial.o libx_ut.a -lm -lpthread/usr/local/arm/3.4/bin
4、-ccache/./lib/gcc/arm-linux-uclibc/3.4.3/././././arm-linux-uclibc/bin/ld: ERROR: c_serial.o uses hardware FP, whereas myfpmatch uses software FP/usr/local/arm/3.4/bin-ccache/./lib/gcc/arm-linux-uclibc/3.4.3/././././arm-linux-uclibc/bin/ld: failed to merge target specific data of file c_serial.ocolle
5、ct2: ld returned 1 exit statusmake: * myfpmatch Error 13. 解压 arm-linux-gcc-3.4.1.tar.bz2 #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下(注意这个/usr/local/是在/home/steven/usr/local下) # cd usr/local/ #cp -rv arm /usr/local/ 现在交叉编译程序集都在/usr/local/ar
6、m/3.4.1/bin下面了 实际上是将/home/steven/usr/local/ 下的arm目录拷贝到 /usr/local/下4. 修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一) 方法一:修改/etc/bashrc文件 (linux是 /ect/bash.bashrc) #vim /etc/bashrc 在最后加上:export PATH$PATH:/usr/local/arm/3.4.1/binexport PATH 方法二:修改/etc/profile文件: # vim /etc/profile 增加路径设置,在末尾添加如下,保存/etc/pro
7、file文件: export PATH$PATH:/usr/local/arm/3.4.1/bin 方法三:#export PATH$PATH:/usr/local/arm/3.4.1/bin 注:(这只能在当前的终端下才是有效的!)5. 立即使新的环境变量生效,不用重启电脑: 对应方法一:#source /root/.bashrc ?(#source /etc/bashrc)对应方法二:# source /etc/profile 6. 检查是否将路径加入到PATH: # echo $PATH 显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入加入加入加入PAT
8、H。至此,交叉编译环境安装完成。 (本文地址:7. 测试是否安装成功 # arm-linux-gcc v上面的命令会显示arm-linux-gcc信息和版本,这是我显示的信息: Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc- 3.4.1/configure -target=arm-linux -host=i686-host_pc-linux-g
9、nu -prefix=/usr/local/arm/3.4.1 -with-headers=/usr/local/arm/3.4.1/arm -linux/include -with-local-prefix=/usr/local/arm/3.4.1/arm-linux -disable -nls -enable-threads=posix -enable-symvers=gnu -enable-_cxa_atexit -enable- languages=c,c+ -enable-shared -enable-c99 -enable-long-long Thread model: posix
10、 gcc version 3.4.1 8. 编译Hello World程序,测试交叉工具链 写下下面的Hello World程序,保存为hello.c #include int main() printf(Hello World!n); return 0; 执行下面的命令: # arm-linux-gcc -o hello hello.c- 修改环境变量这一步修改/etc/profile文件 在path中添加arm-linux-gcc路径 if id -u -eq 0 ; then PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/
11、sbin:/bin:/usr/local/arm/3.4.1/bin else PATH=/usr/local/bin:/usr/bin:/bin:/usr/games fi 再source /etc/profile就可以刷新环境变量 其他方式试过好像不行.2 安装FTP服务器1.准备工作要运行FTP服务,先要安装FTP服务的服务器软件包.在RHEL4中,该软件包在 disc 1中,包名为 : vsftpd-2.0.1-5.i386.rpm在RHEL5中,该软件包在 disc 2中.rpm -ivh vsftpd-2.0.1-5.i386.rpm /安装该软件包正确安装软件包后,就可以对FTP
12、服务器的主配置文件进行修改了2.修改FTP服务器的主配置文件/etc/vsftpd/vsftpd.conf该配置文件是在安装软件包的时候自动生成的,不要我们手动建立,我们只需要对它做必要的修改就可以让FTP服务器正常运行了.修改示例如下:anonymous_enable=YES/是否允许匿名访问,匿名帐户为 ftp和 anonymouslocal_enable=YES/是否允许本地用户访问write_enable=YES/允许本地用户访问时,是否允许他们有写入的权限local_umask=022/本地用户在写入文件时,这些文件默认的权限dirmessage_enable=YESxferlog_
13、enable=YES/是否启用日志xferlog_std_format=YES/是否用标准格式存储日志connected_from_port_20=YES/是否允许从20的连接请求pam_service_name=vsftpd/设置PAM认证服务的配置文件名,该文件位于/etc/pam.d目录下listen=YES/FTP处于独立启动模式tcp_wraapers=YES/该服务器使用tcp_wrappers作为主机访问控制方式userlist_enable=YES/是否检查vsftpd.user_list中的设置,该文件在/etc下.(在RHEL5中该文件位于/etc/vsftpd中,文件名为
14、user_list)userlist_deny=YES/该项与上一项一起构成了黑名单,即在vsftpd.user_list中的用户不允许访问该FTP服务器.当该项设置为NO时,vsftpd.user_list则为白名单,即只允许在vsftpd.user_list中的用户访问该FTP服务器。chroot_local_user=YES/本地用户登陆时,将其禁锢在FTP根目录下chroot_list_file=/etc/vsftpd/chroot_list/该项和上一项配合使用,当该项不存在时,设置上一项为YES后,则所有本地用户都被禁锢在FTP根目录下,该项存在时,则只有该文件中的用户被禁锢max
15、_clients=100/FTP服务器的最大并发连接数max_per_ip=5/每个ip最多建5个连接local_max_rate=50000/本地用户的最大传输速率,单位为B/s 3.启动vsftpd,运行FTP服务service vsftpd restart如果想让FTP服务器在系统启动时就提供服务,则需要修改其在系统级别下的运行状态chkconfig -list vsftpd /查看在不同系统级别下,vsftpd的运行状态chkconfig -level 35 vsftpd on /设置vsftpd在3 5 系统级别下自动运行简单的FTP服务配置就完成了,在FTP配置过程中,FTP的主配
16、置文件中有启用匿名帐户写入权限项,但是无论该项如何设置都不能让匿名登陆帐户有写入权限.3 解决客户端不能FTP到服务器的问题最近在使用ftp过程中遇到这个问题,输入正确的用户名和密码依然提示500 OOPS: cannot change directory: 无法登陆.服务器使用是Redhat搭建的vsftp,使用环境是从win7界面登入服务器,在输入用户名密码框无法进去,于是在CMD下登录查看错误信息. 随后远程登录linux服务器上,使用getsebool -a 可以查看bool值相关设置信息,这里只需要更改ftp_home_dir 一项即可,(一开始是off)命令如下:setsebool
17、 -P ftp_home_dir 1将其改成on再次使用getsebool -a查看发现 ftp_home_dir 显示为ON 重新在cmd下登录,OK 可以看到登录用户名下对应linux 家目录下的文件夹4 MAKEFILE的编写 4.1 Makefile简介什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就
18、不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个
19、解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C+的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。 make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是: 1)如果这个工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安装 标准 arm linux gcc 开发 环境
限制150内