zoukankan      html  css  js  c++  java
  • Makefile 编写实例

    make命令常用的三个选项:

    1.-k:它的作用是让make命令在发现错误的时候仍然继续执行.我们可以利用这个选项在一次操作中发现未编译成功的源文件.

    2.-n:它的作用是让make命令输出将要执行的操作步骤,而不是真正执行这些操作.

    3.-f  <filename>:它的作用是告诉make命令将哪个文件作为makefile文件.如果未使用这个选项,make命令将依次查找当前目录下的makefile文件,Makefile文件.

    Makefile文件中,将第一个目标定义为all,然后列出其他从属目标,这样可以明确地告诉make命令,在未指定特定目标的时候,默认情况下应该创建哪个目标.

     1 all: myapp
     2 #which compiler, 符号#表示注释.
     3 CC = gcc #定义一个宏,用$(CC)引用
     4 #Where to install
     5 INSTDIR = /usr/local/bin
     6 #Where are include files kept
     7 INCLUDE = .
     8 #Options for development
     9 CFLAGS = -g -Wall -ansi
    10 
    11 myapp: main.o 2.o 3.o
    12     $(CC) -o myapp main.o 2.o 3.o #必须以tab键开头,空格不行
    13 main.o: main.c a.h
    14     $(CC) -I$(INCLUDE) $(CFLAGS) -c main.c
    15 2.o: 2.c a.h b.h c.h
    16     $(CC) -I$(INCLUDE) $(CFLAGS) -c 2.c
    17 3.o: 3.c a.h b.h c.h
    18     $(CC) -I$(INCLUDE) $(CFLAGS) -c 3.c
    19 
    20 clear:
    21 #rm命令以-开头,含义是让make命令忽略rm命令执行的结果.
    22     -rm main.0 2.o 3.o
    23 install: myapp
    24 #必须在每行后面添加反斜杠\,让所有这些shell脚本命令在逻辑上处于同一行.
    25 #下面这个命令以@开头,表示make在执行这些规则之前不会在标准输出上显示命令本身.
    26     @if [ -d $(INSTDIR) ]; 
    27         then 
    28         cp myapp $(INSTDIR); 
    29         chomd a+x $(INSTDIR)/myapp; 
    30         chomd og-w $(INSTDIR)/myapp; 
    31         echo "Installed in $(INSTDIR)"; 
    32     else 
    33         echo "Sorry, $(INSTDIR) does not exit"; 
    34     fi
    下面三个命令:
    make
    make clear
    make install
  • 相关阅读:
    JS魔法堂:阻止元素被选中
    JS魔法堂之实战:纯前端的图片预览
    CentOS6.5菜鸟之旅:纯转载Linux目录结构
    Vim杂记:Sublime的配色方案
    Vim杂记:markdown插件
    CentOS6.5菜鸟之旅:中文编辑器忍痛放弃Sublime
    JS魔法堂:Data URI Scheme介绍
    CentOS6.5菜鸟之旅:安装ATI显卡驱动
    JS魔法堂:获取当前脚本文件的绝对路径
    腊八蒜
  • 原文地址:https://www.cnblogs.com/yyxayz/p/4140556.html
Copyright © 2011-2022 走看看