zoukankan      html  css  js  c++  java
  • linux: 几个常用makefile模板

    不才,总结个人常用makefile模板,以备后用。

    1、编译动态库

    1. #############################################################   
    2. # Makefile for shared library.  
    3. # 编译动态链接库  
    4. #############################################################  
    5. #set your own environment option  
    6. CC = g++  
    7. CC_FLAG = -D_NOMNG -D_FILELINE  
    8.   
    9. #set your inc and lib  
    10. INC =   
    11. LIB = -lpthread -L./ -lsvrtool  
    12.   
    13. #make target lib and relevant obj   
    14. PRG = libsvrtool.so  
    15. OBJ = Log.o  
    16.   
    17. #all target  
    18. all:$(PRG)  
    19.   
    20. $(PRG):$(OBJ)  
    21.     $(CC) -shared -o $@ $(OBJ) $(LIB)  
    22.   
    23. .SUFFIXES: .c .o .cpp  
    24. .cpp.o:  
    25.     $(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o  
    26.   
    27. .PRONY:clean  
    28. clean:  
    29.     @echo "Removing linked and compiled files......;  
    30.     rm -f $(OBJ) $(PRG)  

    2、编译静态库

    1. #############################################################  
    2. # Makefile for static library.  
    3. # 编译静态链接库  
    4. #############################################################  
    5. #set your own environment option  
    6. CC = g++  
    7. CC_FLAG = -D_NOMNG -D_FILELINE  
    8.   
    9. #static library use 'ar' command   
    10. AR = ar  
    11.   
    12. #set your inc and lib  
    13. INC =   
    14. LIB = -lpthread -L./ -lsvrtool  
    15.   
    16. #make target lib and relevant obj   
    17. PRG = libsvrtool.a  
    18. OBJ = Log.o  
    19.   
    20. #all target  
    21. all:$(PRG)  
    22. $(PRG):$(OBJ)  
    23.     ${AR} rv ${PRG} $?  
    24.   
    25. .SUFFIXES: .c .o .cpp  
    26. .cpp.o:  
    27.     $(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o  
    28.   
    29. .PRONY:clean  
    30. clean:  
    31.     @echo "Removing linked and compiled files......"  
    32.     rm -f $(OBJ) $(PRG)  

    3、可执行程序

    1. ###########################################  
    2. #Makefile for simple programs  
    3. ###########################################  
    4. INC=  
    5. LIB= -lpthread  
    6.   
    7. CC=CC  
    8. CC_FLAG=-Wall  
    9.   
    10. PRG=threadpooltest  
    11. OBJ=CThreadManage.o CThreadPool.o CThread.o CWorkerThread.o threadpooltest.o  
    12.   
    13. $(PRG):$(OBJ)  
    14.     $(CC) $(INC) $(LIB) -o $@ $(OBJ)  
    15.       
    16. .SUFFIXES: .c .o .cpp  
    17. .cpp.o:  
    18.     $(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o  
    19.   
    20. .PRONY:clean  
    21. clean:  
    22.     @echo "Removing linked and compiled files......"  
    23.     rm -f $(OBJ) $(PRG)  


    随机组合、举一反三会写出适合项目的makefile

  • 相关阅读:
    Promise关键知识
    CSS实现简易的轮播图
    绝对定位和相对定位的一些特性
    行内元素及其浮动
    webpack实践总结
    less语法详解
    js模拟事件
    jquery各种事件绑定的区别
    前端路由实现的关键知识点
    js鼠标事件相关知识
  • 原文地址:https://www.cnblogs.com/subo_peng/p/5157376.html
Copyright © 2011-2022 走看看