zoukankan      html  css  js  c++  java
  • Makefile的写法

    LinuxC/C++编程基础

    Makefile是Linux系统下的一种编译脚本。学Linux的话,特别是用Linux写C或C++程序,就多多少少都会接触到Makefile

    基础使用

    1. 新建名称为makefile文本文件
    target: dependencies
        command
    
    例子:
    1. test: test.c
    2.    gcc test.c -o test
    3.(一个回车)
    
    target = test 生成test.o可执行文件
    dependencies = 依赖于 test.c
    command = gcc test.c -o test 把test.c源文件生成test.o命令
    
    1. 运行makefile脚本
    在文件目录下:
     输入   : make
     就运行了makefile文件
    
    

    进阶使用

    gcc test.c tool.c -o main
    生成tool.o 和test.o 合并为main.o 在test.c调用的是tool.c里面的函数

    多文件合并

    在makefile里面写

    main: main.c tool.o
        gcc main.c tool.o -o main
    
    tool.o: tool.c
        gcc -c tool.c        (gcc -c tool.c表示直接把tool.c编译成tool.o文件)
    
    

    Makefile运行顺序是从下往上运行的

    一般在生成main之后需要删除可执行文件(.o文件)

    makefile 里面添加
    clean:
        rm *.o main
    
    命令行命令:
        :make clean
    
    //这里main使用了foo和bar里面的函数
    main: main.c foo.o bar.o
        gcc main.c foo.o bar.o -o main
    
    foo: foo.c
        gcc -c foo.c
    
    bar: bar.c
        gcc -c bar.c
    
    clean:
        rm *.o main
    
    
    CC = gcc//设置自己的变量去替换一些linux命令
    main: main.c foo.o bar.o
        $(CC) main.c foo.o bar.o -o main
    
    foo: foo.c
        $(CC) -c foo.c
    
    bar: bar.c
        $(CC) -c bar.c
    
    clean:
        rm *.o main
    
    
    CC = gcc//设置变量去替换一些linux命令
    
    all: main_max, max_min//不加这一句只编译第一条main_max main_min被跳过,加上之后会去把all里面的都生成
    
    main_max: main_max.c foo.o bar.o
        $(CC) main_max.c foo.o bar.o -o main_max
    
    main_min: main_min.c foo.o bar.o
        $(CC) main_min.c foo.o bar.o -o main_min
    
    foo: foo.c
        $(CC) -c foo.c
    
    bar: bar.c
        $(CC) -c bar.c
    
    clean:
        rm *.o main_max main_min
    
    
  • 相关阅读:
    nunit2.5.7 单元测试时提示:“当前不会命中断点 还没有为该文档加载任何符号”
    文件下载报错:引发类型为“System.OutOfMemoryException”的异常-.Net 内存溢出
    asp.net 访问页面访问统计实现 for iis7
    easyui tree 更改图标
    asp.net 访问页面访问统计实现
    记一次空格引起的查询问题
    SVN如何忽略dll文件和bin目录
    vmware 中安装Ghost XP 版本心得
    冒泡排序
    JS数组去重
  • 原文地址:https://www.cnblogs.com/DengSchoo/p/12600811.html
Copyright © 2011-2022 走看看