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

  • 相关阅读:
    JAVA BASE64
    Mysql Index extends优化
    JAVA异步加回调的例子
    TCP长连接和短连接的区别
    浅析RPC概念框架
    MySQL Index Merge Optimization
    一简单的RPC实例(Java)
    return语句的用法
    java中对象和对象的引用
    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4334421.html
Copyright © 2011-2022 走看看