【gcc 编译 】
如 demo 目录下 有一个 abc.c 需要编译,则:gcc ./abc.c -o abc
执行: ./abc
说明: ./ 表示当前目录下
【关于 make】
(1) 一个C程序需要 编译,链接。在编译的时候,将产生 .o 目标文件,链接时将产生 可执行文件。
(2) 如果一个程序有多个源文件要编译,链接,手工去逐个去做将会麻烦很大。make命令就帮我们完成这项工作。
(3)make 命令的执行时依赖于一个 makefile文件(文件名就是 Makefile或者 makefile,无后缀名)。
(4)如何写makefile文件? 举例如下:有三个文件,一个叫 abc.c ,含有 main的主文件;一个叫add.c文件,它有一个add方法;另外一个叫 add.h头文件,对add.c进行声明的一个文件。
abc.c:
#include "stdio.h" #include "add.h" int main() { printf("hello unix c !\n"); printf("sum is :%d\n" , add(2,3)); return 0; }
add.c:
int add(int a,int b) { return a + b; }
add.h
extern int add(int a, int b);
现在要对三个文件进行编译,链接,一步完成,这时,就要书写 makefile 文件了
test:abc.o add.o
#pay attention : the tab before gcc Command ,hehehehe
gcc abc.o add.o -o test
abc.o:abc.c add.h
gcc -c abc.c -o abc.o
add.o:add.c add.h
gcc -c add.c -o add.o
对makefile文件内容,做个简单解释如下:
第一行: 程序 test 将使用两个 目标文件 abc.o 和 add.o,注意第二行的tab分隔符,一定要!!
第二行:将两个目标文件 链接生产为 test可执行文件
第三、四行:解释了 abc.o如何产生
第五、六行:解释了add.o如何产生
(5)执行make :在当前目录下输入“ make” ,ok ,产生 test 可执行文件, 在当前目录下执行 使用 “ ./test”