zoukankan      html  css  js  c++  java
  • Makefile基础

    命令方式:

           makefile 或 Makefile

    makefile规则:

           目标,依赖,命令

           目标:依赖条件

                  命令

    版本1:

    app : main.o add.o sub.o mul.o
        gcc main.o add.o sub.o

    版本2:

    app:main.o add.o sub.o mul.o
        gcc main.o add.o sub.o mul.o -o app
    main.o : main.c
        gcc -c main.c
    add.o : add.c
        gcc -c main.c
    sub.o : sub.c
        gcc -c sub.c
    mul.o : mul.c
        gcc -c mul.c

    makefile工作原理:

    版本3:

    obj=main.o add.o sub.o mul.o
    target=app
    $(target):$(obj)
        gcc $(obj) -o $(target)
    %.o:%.c
        gcc -c $< -o $@

    makefile中自动变量

    $<:规则中的第一个目标

    $@:规则中的目标

    $:规则中所有的依赖

    只能在规则的命令中使用

    Makefile维护的一些变量:

    CC:默认值 cc

    CPPFLAGS:预处理器需要的选项,如-I

    CFLAGS:编译的时候使用的参数 -Wall -g -c

    LDFLAGS:链接库使用的选项 -L -l

    版本4:

    obj=main.o add.o sub.o mul.o
    target=app
    CC = gcc
    CPPFLAGS = -I
    $(target):$(obj)
        $(CC) $(obj) -o $(target)
    %.o:%.c
        $(CC)-c $< -o $@

     版本5

    target=app
    src=$(wildcard ./*.c)
    obj=$(patsubst ./%.c, %.o, $(src))
    INCLUDE=-I ../include
    CC = g++
    CPPFLAGS = -I 
    $(target):$(obj)
        $(CC) $(obj) -o $(target)
    %.o:%.c
        $(CC) $(INCLUDE) -c $< -o $@
    .PHONY:clean
    clean:    
        rm $(obj) $(target)

    mkdir /aa

    创建一个目录

    -mkdir  -的意思是如果执行失败就忽略此条命令继续往下执行

  • 相关阅读:
    JavaScript中的编码函数
    Redis 客户端命令总结
    Java 实现网络图片的读取与下载
    JavaScript实现单张图片上传功能
    HTML+CSS实现页面豆腐块布局和图片居中
    Java 获取当前项目所在服务器的 IP 地址
    JavaScripts中关于数字的精确计算方法
    遍历HashMap的四种方法
    java中URL 的编码和解码函数
    equals ==
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11295757.html
Copyright © 2011-2022 走看看