zoukankan      html  css  js  c++  java
  • makefile简单例子

    $@   --目标文件,
    $^    --所有的依赖文件,
    $<    --第一个依赖文件。
    $?   --所有比目标新的依赖目标的集合。以空格分隔。
    -Wl,-rpath --编译目标代码时指定的动态库搜索路径。
    GCC四步曲
    第一步:预处理
    gcc -E hello.c -o hello.i
    第二步:编译
    gcc -S hello.i -o hello.s
    第三步:汇编
    gcc -c hello.s -o hello.o
    第四步:链接
    链接动态库和静态库
    Makefile 简单例子:
    
    #定义生成的目标文件
    CPP = g++
    FLAG += -g -Wall -std=c++11
    
    LIB_PATH+=-L/usr/local/lib 
    LIB_PATH+=-L/usr/local/lib/boost
    
    EXTRA_LIBS=-lpthread -lboost_system
    
    #定义目标文件
    SRC=./src
    
    SOURCE := $(wildcard $(SRC)/*.cpp) $(wildcard $(SRC)/common/*.cpp)
    OBJS := $(patsubst %.cpp,%.o,$(SOURCE))
    
    EXEC=CMS
    
    all:    $(EXEC)
    $(EXEC):$(OBJS)
      $(CPP) $(FLAG) -o $(EXEC) $(OBJS) $(EXTRA_LIBS) $(LIB_PATH)
    
    ######各文件的依赖关系
    .cpp.o:
      $(CPP) $(FLAG) -c -o $@ $<
    
    ######定义依赖关系结束
    clean:
      rm -f ${SRC}/*.o
    
    #g++ -g -Wall -std=c++11 main.cpp epoll_server.cpp -c 
    #g++ main.o epoll_server.o -o -L/usr/local/lib -L/usr/local/lib/boost -lpthread -lboost_system





  • 相关阅读:
    MySql锁机制
    Mysql存储引擎
    Linux 系统中安装mysql
    常见的系统架构
    Linux环境下搭建go开发环境
    Ajax概述
    正向代理和反向代理
    Mysql 存储过程以及在.net中的应用示例
    Mysql 事务
    Windows服务器实现自动化部署-Jenkins
  • 原文地址:https://www.cnblogs.com/osbreak/p/13929365.html
Copyright © 2011-2022 走看看