`
dxflygao
  • 浏览: 66016 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

linux Command

阅读更多

【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”

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics