预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux下C编程基础1.1源代码编辑器VI的使用Vi有三种操作状态:命令模式、插入模式和末行命令模式,它们间的切换方式如图: 快速入门Vi的常用命令(命令模式)插入模式的常用命令末行命令模式的常用命令C语言编译器gcc的使用头文件和系统求助gcc选项常用选项含义makefile文件的编写/***********main.c****************/ #include"mytool1.h" #include"mytool2.h" voidmain() { mytool1_print("hello"); mytool2_print("hello"); } /***********mytool1.h****************/ #ifndef_MYTOOL_1_H #define_MYTOOL_1_H voidmytool1_print(char*print_str); #endif /************mytool1.c************/ #include"mytool1.h" voidmytool1_print(char*print_str) { printf("Thisismytool1print%s\n",print_str); } /***********mytool2.h****************/ #ifndef_MYTOOL_2_H #define_MYTOOL_2_H voidmytool2_print(char*print_str); #endif /************mytool2.c************/ #include"mytool2.h" voidmytool2_print(char*print_str) { printf("Thisismytool2print%s\n",print_str); }当然由于这个程序是很短的我们可以这样来编译 gcc-cmain.c gcc-cmytool1.c gcc-cmytool2.c gcc-omainmain.omytool1.omytool2.o 这样的话我们也可以产生main程序,而且也不是很麻烦.但是如果我们考虑一下如果有一天我们修改了其中的一个文件(比如说mytool1.c)那么我们难道还要重新输入上面的命令?也许你会说,这个很容易解决啊,我写一个SHELL脚本,让她帮我去完成不就可以了.是的对于这个程序来说,是可以起到作用的.但是当我们把事情想的更复杂一点,如果我们的程序有几百个源程序的时候,难道 也要编译器重新一个一个的去编译? #这是上面那个程序的Makefile文件 main:main.omytool1.omytool2.o gcc-omainmain.omytool1.omytool2.o main.o:main.cmytool1.hmytool2.h gcc-cmain.c mytool1.o:mytool1.cmytool1.h gcc-cmytool1.c mytool2.o:mytool2.cmytool2.h gcc-cmytool2.c makefile的基本规则makefile一般被叫做“makefile”或“Makefile”。当然你可以在make的命令行指定别的文件名。如果你不特别指定,它会寻找makefile”或“Makefile”,因此使用这两个名字是最简单的。 在Makefile中也#开始的行都是注释行。Makefile中最重要的是描述文件的依赖关系的说明。一般的格式是: target:components TABrule 第一行表示的是依赖关系。 第二行是规则.比如说我们上面的那个Makefile文件的第二行 main:main.omytool1.omytool2.o 表示我们的目标(target)main的依赖对象(components)是main.omytool1.omytool2.o 当倚赖的对象在目标修改后修改的话,就要去执行规则一行所 指定的命令.就象我们的上面那个Makefile第三行所说的一样要执行 gcc-omainmain.omytool1.omytool2.o 注意规则一行中的TAB表示那里是一个TAB键,若缺少系统则会提示错误“***missingseparator.stop”,这是许多初学者容易忽略的地方,要注意! makefile变量 1.贮存一个文件名列表。在上面的例子里,生成可执行文件的规则包含一些目标文件名做为依靠。在这个规则的命令行里同样的那些文件被输送给gcc做为命令参数。如果在这里使用一个变数来贮存所有的目标文件名,加入新的目标文件会变的简单而且较不易出错 2.贮存可执行文件名。如果你的项目被用在一个非gcc的系