linux下程序开发入门

linux下程序开发入门

ID:32585477

大小:60.69 KB

页数:7页

时间:2019-02-13

linux下程序开发入门_第1页
linux下程序开发入门_第2页
linux下程序开发入门_第3页
linux下程序开发入门_第4页
linux下程序开发入门_第5页
资源描述:

《linux下程序开发入门》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Linux下程序开发入门1•源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器•下面我们以一个实例来说明如何使用gcc编译器.假设我们有下面一个非常简单的源程序(hello.c):intmain(intargc,char**argv){printf(”HelloLinuxM);要编译这个程序,我们只要在命令行下执行:gcc-ohellohello.cgcc编译器就会为我们生成一个hello的可执行文件•执行./hello就可以看到程序的输出结果了•命令行中gcc表示我们是用g

2、cc来编译我们的源程序,-o选项表示我们要求编译器给我们输出的可执行文件名为hello而hello.c是我们的源程序文件.gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了・・o选项我们已经知道了,表示我们耍求输岀的可执行文件名・・c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件・-g选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息.知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说

3、明.gcc编译器还有2个非常有用的选项(-02-Wall),几乎在所有用gcc编译的程序屮都可以看到这2个选项.-02选项表示我们希望编译器在编译的时候对我们的程序进行一定程度的优化.2表示我们优化的级别是2.当然你也可以不使用2,而是使用1・3的中的任何一个,不过习惯上我们都使用2的优化级别•关于优化的详细情况可以参考gcc的帮助手册.■Wall是警告选项,表示我们希望gcc在编译的时候,让gcc输出她认为的一些程序中可能会出问题的一些警告信息,比如指针没有初始化就进行赋值等等一些警告信息.2.Makefile的编

4、写假设我们有下面这样的一个程序,源代码如下:/*main.c*/#include#includeintmain(intargc,char**argv){mytool1_print("hello");mytool2_print(”hello“);}/*mytooH.h*/#ifndef_MYTO#define_MYTOOL_1_HvoidmytooH_print(char*print_str);#endif/*mytooH.c*/#includevoid

5、mytooH_print(char*print_str){printf("ThisismytooHprint%sH,print_str);}/*mytool2.h*/#ifndef_MYTOOL_2_H#define_MYTOOL_2_Hvoidmytool2_print(char*print_str);#endif/*mytool2.c*/includevoidmytool2_print(char*print_str){printf("Thisismytool2print%s",pri

6、nt_str);}当然由于这个程序是很短的我们可以这样来编译gcc・cmain.c-I.gcc-cmytooH.c-I.gcc-cmytool2.c-I.gcc-omainmain.omytooH.0mytool2.o因为我们在程序中使用了我们自己的2个头文件,而在包含这2个头文件的吋候,我们使用的是v>这样编译器在编译的时候会去系统默认的头文件路径找我们的2个头文件由于我们'的2个头文件不在系统能够的缺省路径下面,所以我们自己扩展系统的缺省路径,为此我们使用了・1•选项,表示将系统缺省的头文件路径扩展到当前路径.这

7、样的话我们也可以产生main程序,而且也不是很麻烦•但是考虑一下如果有一天我们修改了其中的一个文件(比如说mytooh.c)那么我们难道还要重新输入上面的命令?也许你会说,这个很容易解决啊,我写一个SHELL脚本,让她帮我去完成不就可以了•是的对于这个程序来说,是可以起到作用的•但是当我们把事情想的更复杂一点,如果我们的程序有儿百个源程序的时候,难道也要编译器重新一个一个的去编译?为此,聪明的程序员们想出了一个很好的工具来做这件事情,这就是make•我们只要执行一下make,就可以把上面的问题解决掉•在我们执行mak

8、e之前,我们要先编写一个非常重要的文件.-Makefile.对于上面的那个程序来说,可能的一个Makefile的文件是:#这是上面那个程序的Makefile文件main:main.omytooll.omytool2.ogcc-omainmain.omytooll.omytool2.omain.o:main.cmytooll.hmytool2.h

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。