zoukankan      html  css  js  c++  java
  • Makefile文件基本格式

    以下是Makefile的基本模板

    #指定编译器
    CC = g++
    #指定编译参数
    CFLAGS = -std=c++11

    #指定头文件路径,此处用于指定非标准库的头文件路径
    INC = -I./ -I /usr/include

    #指定要链接的动态库或静态库 -L是指定动态库路径,非标准的动态库需要此参数
    LIBS = -lm -ldl -L/mylibs/xxx -lxxx

    #把上面放一起
    CXXFLAGS = ${CFLAGS} ${INC} ${LIBS}

    #指定生成可执行文件名称
    EXEC = a.out

    #指定由哪些文件来生成可执行文件
    OBJS = xxx1.o xxx2.o

    #make执行动作
    ${EXEC} : ${OBJS}
    ${CC} -o $@ $^


    #make clean动作
    clean:
    rm -rf ${OBJS}

    #中间文件的生成
    %.o:%.c
    $(CC) $(CXXFLAGS) $(INC) -o $@ -c $<

    不生成中间.o文件

    #指定编译器
    CC = g++
    #指定编译参数
    CFLAGS = -std=c++11

    #指定头文件路径,此处用于指定非标准库的头文件路径
    INC = -I./ -I /usr/include

    #指定要链接的动态库或静态库 -L是指定动态库路径,非标准的动态库需要此参数
    LIBS = -lm -ldl -L/mylibs/xxx -lxxx

    #把上面放一起
    CXXFLAGS = ${CFLAGS} ${INC} ${LIBS}

    #指定生成可执行文件名称
    EXEC = a.out

    #指定由哪些文件来生成可执行文件
    COBJS = xxx1.c xxx2.c

    #make执行动作
    all:
    $(CC) -o $(EXEC) $(COBJS) $(CXXFLAGS)

    #make clean动作
    clean:
    rm -rf ${OBJS}

    关于生成  **.o 文件(只编译未链接文件);若是在大型项目中,只修改了其中一个文件的内容,那么没必要全部文件重新编译,只需编译修改部分即可。此时就推荐使用先编译生成 *.o文件  ; 再链接。

  • 相关阅读:
    Release和Debug的区别[转]
    SVM运用到多分类[引]
    HMM
    [转] 数据挖掘 机器学习 模式识别的关系
    [转]mysql 数据导入
    java 获取当前时间戳
    二叉树遍历建树[zhuan]
    关于c指针[转]
    词法分析
    组合数据类型练习,综合练习
  • 原文地址:https://www.cnblogs.com/adylee/p/11398798.html
Copyright © 2011-2022 走看看