• 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

  • 相关阅读:
    MYSQL语法篇之:“建”、“增”
    MYSQL数据库管理系统
    数据库管理系统
    初识数据库
    JDK/JRE/JVM的区别与联系
    计算机语言的发展史
    Java的三大版本
    Java的特性和优势
    初识Java
    补充:DOS命令
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4334421.html
Copyright © 2020-2023  润新知