1949的笔记 https://bbs.21ic.com/?678712 [收藏] [复制] [RSS]

日志

Linux调试笔记(4)编译软件

已有 802 次阅读2011-5-23 00:35 |系统分类:嵌入式系统

       会了一些基本操作,就想了解一下程序的完整的编译过程,下面是几个常用的工具软件。


       VI和gedit:文本编辑用的,有点类似于WINDOW下常用的UE,但功能上就弱多了,使用上目前比较倾向于gedit,毕竟gedit还有语法高亮这样的基本的东西,而VI就是单纯的文本文档了。


       gcc:程序的编译、链接、生成BIN文件,这些工作都是gcc来做,是linux开发的核心工具了。


       make:项目管理器。通常一个项目中,如果只含有一两个C语言文件,那么输入命令#gcc file1 file2就可以了,但如果一个项目中含有几十个C文件需要编译的话,那么用gcc命令就太麻烦了,尤其在调试的时候,所以大的项目通常都要用到make,它的工作方式是:执行时,首先查找当前目录下是否有makefile文件(这个文件由用户编写),有的话就按照makefile的内容,调用指定的编译软件对指定的文件进行编译,在编译前通常还要比较文件是否进行过修改,只编译修改过的文件,以节约时间。也就是说,make软件本身没有编译功能,它只是按照用户的设定,替用户输入繁琐的编译命令。


       我们做一个简单的程序,通常只用到VI和GCC就可以了。按照国际惯例,第一个程序就是"HELLO WORLD!"。#touch hello.c ,#vi hello.c,不用细说了。


       当输入#gcc hello.c的时候,提示Command not found!,该不会是没安装吧,这时想到,之前在搭建学习环境的时候,曾经装过GCC,按照开发板说明上的提示输入#arm-linux-gcc hello.c,编译成功,同时在同目录下出现了一个编译好的文件“a.out”,这个就是gcc编译后,默认的文件名。


       运行看看吧,# ./a.out,结果提示cannot excute binary file。不解,百度,发现有网友问相同问题,问题下一个大虾回复:“你该不是用arm编译器编译的吧?”,震惊了,这智商,都打出来了是arm-linux-gcc还运行什么。


       既然#gcc命令不管用,那就是在安装linux的时候,没有选择同时安装这个软件。自己安装吧!


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)