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文件  ; 再链接。

  • 相关阅读:
    SETI ACdream
    字符串野指针 百练2681
    mvc架构的简单登录系统,jsp
    servlet修改后无效,仍然还是修改之前的效果
    mysql安装,数据库连接
    the process android.process.acore has stopped或the process com.phone。。。。
    软件测试
    vim实用技巧
    ubuntu终端白屏的解决方法
    vim相关资料
  • 原文地址:https://www.cnblogs.com/adylee/p/11398798.html
Copyright © 2011-2022 走看看