zoukankan      html  css  js  c++  java
  • makefile 示例1

    # 设置编译器
    CC = g++

    # -fPIC 作用于编译阶段,告诉编译器产生与位置无关代码
    # -D宏定义,相当于C中的全局#define,可以通过宏定义来控制源程序的编译,例如:
    # #ifdef _FILELINE
    # printf("Hello Yu Qiang, How are you? ");
    # #else
    # printf("Sorry to lost you. ");
    # #endif
    # 程序最终调用输出是: Hello Yu Qiang, How are you?
    CFLAG = -g -fPIC -D_FILELINE

    # mysql的头文件
    MYSQLINC = /usr/include/mysql

    INC = -I -Iinclude -I$(MYSQLINC)

    # mysql库目录
    MYSQLLIB = -L /usr/lib64/mysql -l mysqlclient -lz -lm

    # 服务器目标
    SERVEROBJS = src/file1.o src/file2.o src/file3.o

    # 客户端目标
    CLIENTOBJS = src/f1.o src/f2.o

    # bin目录
    BINDIR = bin

    # checkbin 检查是否存在bin目录
    # 在bin目录下生成 Server 与 Client
    all: checkbin $(BINDIR)/Server $(BINDIR)/Client

    # 生成 Server
    # $^ 所有.o文件
    # $@ 所有.c文件
    $(BINDIR)/Server: $(SERVEROBJS)
    $(CC) -g $(MYSLQLIB) $^ -o $@

    # 生成Client
    $(BINDIR)/Clietn: $(CLIENTOBJS)
      $(CC) -g $(MYSQLLIB) $^ -o $@

    # .SUFFIXES 连接后缀,把.o .cpp .c .cpp.o 这些文件连接起来编译。当前makefile内支持文件后缀的类型列表。
    .SUFFIXES: .c .o .cpp
    .cpp.o:
      $(CC) $(CFLAG) $(INC) -o $@ -c $<

    # .PHONY 伪目标
    .PHONY: checkbin
    checkbin:
      test -d "${BINDIR}" || mkdir $(BINDIR)


    .PHONY: clean
    clean:
      -rm -f *.o
      -rm -f $(BINDIR)/Server

  • 相关阅读:
    关于禁止浏览器的回退功能
    实时监听输入框值变化的完美方案:oninput & onpropertychange
    Sublime Text 3 快捷键精华版
    计算手动输入的文本长度
    ie的用户名密码输入框右侧提示去掉
    获取元素定位
    select option
    js打断点
    Android LaunchMode
    Gradle 使用第三方库总结
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4334421.html
Copyright © 2011-2022 走看看