几个常用makefile模板(动态库、静态库、可执行程序)

2024-02-22 03:08

本文主要是介绍几个常用makefile模板(动态库、静态库、可执行程序),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、编译动态库

复制代码
    #############################################################   # Makefile for shared library.  # 编译动态链接库  #############################################################  #set your own environment option  CC = g++  CC_FLAG = -D_NOMNG -D_FILELINE  #set your inc and lib  INC =   LIB = -lpthread -L./ -lsvrtool  #make target lib and relevant obj   PRG = libsvrtool.so  OBJ = Log.o  #all target  all:$(PRG)  $(PRG):$(OBJ)  $(CC) -shared -o $@ $(OBJ) $(LIB)  .SUFFIXES: .c .o .cpp  .cpp.o:  $(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o  .PRONY:clean  clean:  @echo "Removing linked and compiled files......;  rm -f $(OBJ) $(PRG)  
复制代码

2、编译静态库

复制代码
    #############################################################  # Makefile for static library.  # 编译静态链接库  #############################################################  #set your own environment option  CC = g++  CC_FLAG = -D_NOMNG -D_FILELINE  #static library use 'ar' command   AR = ar  #set your inc and lib  INC =   LIB = -lpthread -L./ -lsvrtool  #make target lib and relevant obj   PRG = libsvrtool.a  OBJ = Log.o  #all target  all:$(PRG)  $(PRG):$(OBJ)  ${AR} rv ${PRG} $?  .SUFFIXES: .c .o .cpp  .cpp.o:  $(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o  .PRONY:clean  clean:  @echo "Removing linked and compiled files......"  rm -f $(OBJ) $(PRG)  
复制代码

3、可执行程序

复制代码
    ###########################################  #Makefile for simple programs  ###########################################  INC=  LIB= -lpthread  CC=CC  CC_FLAG=-Wall  PRG=threadpooltest  OBJ=CThreadManage.o CThreadPool.o CThread.o CWorkerThread.o threadpooltest.o  $(PRG):$(OBJ)  $(CC) $(INC) $(LIB) -o $@ $(OBJ)  .SUFFIXES: .c .o .cpp  .cpp.o:  $(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o  .PRONY:clean  clean:  @echo "Removing linked and compiled files......"  rm -f $(OBJ) $(PRG)  
复制代码

这篇关于几个常用makefile模板(动态库、静态库、可执行程序)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733948

相关文章

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET