Chinaunix首页 | 论坛 | 博客
  • 博客访问: 838954
  • 博文数量: 190
  • 博客积分: 2991
  • 博客等级: 少校
  • 技术积分: 2400
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-24 18:11
文章分类

全部博文(190)

文章存档

2015年(3)

2014年(1)

2013年(65)

2012年(121)

我的朋友

分类: C/C++

2012-10-26 11:06:32

在linux编程,使用文本编辑器是很通用的做法。对于单文件编译链接,使用简单的gcc或g++命令进行编译和链接。但是做大的项目不可能是一两个.c和.h文件能解决问题的,所以在进行多文件编译和链接时需要使用Makefile文件,让繁琐的工作变简单了。
     在linux系统编写Makefile有两种常见的方法,一种是通过软件生成,主要是autoconf和automake软件。另一种是通过文本编辑器手动编写。这里主要说第二种方法。
     手动编写Makefile文件的格式为:
      target: prerequisites
      (tab按键) command
     例如:编写一个helloworld文件,中间的file.h文件如下:
      #ifndef FILE_H
      #define FILE_H
       void print();
      #endif
     编写file.c文件如下:
     #include
     #include "file.h"
     void print()
     {
          printf("Hello,World!\n");
     }
    编写helloworld.c的文件如下:
     #include
     #include "file.h"
     int main(void)
     {
          print();
          return 0;
     }
进行单命令:
gcc -c helloworld.c
gcc -c file.c
gcc -o helloworld helloworld.o file.o
这样的话,如果文件比较多的话,就很麻烦了。
下面这是进行Makefile文件的编写:
helloworld: helloworld.o file.o
        gcc -o $@ $^
         .c.o:
         gcc -c $<
这中间的$@代表目标文件
$^代表所有的依赖文件
$<代表第一个依赖文件
当编写完这个Makefile文件之后,可以在终端中先跳到文件所在目录下,然后输入make。
之后就可以生成目标文件helloworld了。然后再终端中输入./helloworld运行程序。
原文:
阅读(1918) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~