如何编写Makefile?

//swap.c
#include<stdio.h>
int swap(int *x,int *y)
{printf("a=%d b=%d\n",*x,*y);
 int z;
 z=*x;
 *x=*y;
 *y=z;
 printf("a=%d b=%d\n",*x,*y);
}
//max.c
int max(int a,int b)
{
 return a>b?a:b;
}
//test.c
int main()
{
  int x=3,y=4;
  printf("max=%d\n",max(x,y));
  swap(&x,&y);
 }下来我们来编写Makefile文件vi Makefile  //文件名一定要为Makefile,不能是其他任何名字,标准为Makefile,书上写的是makefile
all:test
max.o:max.c
    gcc -o max.o -c max.c
swap.o:swap.c
    gcc -o swap.o -c swap.c
test.o:test.c
    gcc -o test.o -c test.c
test:max.o swap.o test.o
    gcc -o test swap.o max.o test.o

编写Makefile时,最好用vi编辑器,不可用记事本gedit,否则会出现如下错误的!!!!

				
时间: 2024-10-05 18:11:37

如何编写Makefile?的相关文章

简单编写Makefile

相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云.在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide.其实makefile并没有想象的那么难写,只要你明白了其中的原理,自己实践几次.你也可以自己写makefile,让别人对你头来羡慕的目光. 下面本人介绍一下自己的学习成果,初学阶段,欢迎大家多多指正.简单的说,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至可以在m

编写makefile时注意事项

CFLAGS=-Wall -g  这个-Wall开头字母一定要大写.这种小错误会导致不能编译! 其次就是在一个目录下面的应该是文件 ,而不能在继续用文件去进行编写代码,因为make寻找当前目录下的makefile,makefile里面用到的文件而不是目录里的代码,如果需要也要通过-l(l链接link)一下.所以再一个目录下,编写文件尽量用vi命令,而不是mkdir.这两个区别要搞清楚.文件与目录还是有区别的. linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具

Linux 程序设计学习笔记----动手编写makefile文件

Befroe Beginning. 之前定了暑假的plan ,关于Linux的书籍现在在看的是ALP和Linux高级程序设计(杨宗德)第三版.在计划中的是Linux高级环境编程. 现在开始关于Linux程序设计的第一篇学习笔记. 本来打算把名字写成教程,不过觉得自己完全是新手在自学,还是写学习笔记比较负责和适合. 希望可以一起学习进步. 引入 首先我们假设这样一个场景.我们有一个程序包含了三个文件,分别是源码文件main_plus,c和function_plus.c以及头文件mydefine_p

教会你如何编写makefile文件

最近一直在学习makefile是如何编写的.当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件. makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大. 下面通过实例一步步讲解如何使用makefile.下面的四段代码. //main.cpp #include "functions.h" int mai

如何编写makefile文件

最近一直在学习makefile是如何编写的. 当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件. makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大.它是这样工作的: 1.make会在当前目录下找名字叫“Makefile”或“makefile”的文件.    2.如果找到,它会找文件中的第一个目标文件(ta

第十天:shell编程基础与编写Makefile

一:shell编程基础 shell定义:shell是一个作为用户与linux系统间接口的程序.它允许用户向操作系统输入需要执行的命令.shell有很多中,linux系统中shell为bash. shell编程可以看作是一堆命令的集合.和windows中的bat程序类似的脚本程序.为解释性语言. 第一个shell程序是判断两个数字的大小. 1 #!/bin/bash 2 3 num1=10 4 num2=9 5 6 if test $num1 -gt $num2 7 then 8 echo $nu

简单编写makefile文件,实现GCC4.9编译项目,加入boost库测试等等。。

一.需要用到的hw.cpp hw.h funtest.cpp funtest.h makefile 几个测试文件 1.hw.cpp代码如下: #include "hw.h" #include "funtest.h" using namespace std; using namespace boost; int main() { timer t; { int i=1; } auto i="abc"; cout<<i<<end

为Hadoop的MapReduce程序编写makefile

最近需要把基于hadoop的MapReduce程序集成到一个大的用C/C++编写的框架中,需要在make的时候自动将MapReduce应用进行编译和打包.这里以简单的WordCount1为例说明具体的实现细节,注意:hadoop版本为2.4.0. 源代码包含两个文件,一个是WordCount1.java是具体的对单词计数实现的逻辑:第二个是CounterThread.java,其中简单的当前处理的行数做一个统计和打印.代码分别见附1. 编写makefile的关键是将hadoop提供的jar包的路

Linux下编写 makefile 详细教程

原文地址:https://www.cnblogs.com/mfryf/p/3305778.html 还有一篇也不错:http://wiki.ubuntu.org.cn/跟我一起写Makefile:MakeFile介绍 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习. 后记,看完发现这篇文章和<Linux环境下的C编程指南>的mak