from: Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)

  本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile。

  这些makefile都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码的同一目录下,然后就可以用 make 来生成目标文件了。

  下面是三个makefile的源代码:

1、生成可执行文件的makefile

######################################
#
######################################
#source file
#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))#target you can change test to what you want
#目标文件名,输入任意你想要的执行文件名
TARGET  := test#compile and lib parameter
#编译参数
CC      := gcc
LIBS    :=
LDFLAGS :=
DEFINES :=
INCLUDE := -I.
CFLAGS  := -g -Wall -O3 $(DEFINES) $(INCLUDE)
CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H#i think you should do anything here
#下面的基本上不需要做任何改动了
.PHONY : everything objs clean veryclean rebuildeverything : $(TARGET)all : $(TARGET)objs : $(OBJS)rebuild: veryclean everythingclean :rm -fr *.sorm -fr *.overyclean : cleanrm -fr $(TARGET)$(TARGET) : $(OBJS)$(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)

2、生成静态链接库的makefile

######################################
#
#
#######################################target you can change test to what you want
#共享库文件名,lib*.a
TARGET  := libtest.a#compile and lib parameter
#编译参数
CC      := gcc
AR      = ar
RANLIB  = ranlib
LIBS    :=
LDFLAGS :=
DEFINES :=
INCLUDE := -I.
CFLAGS  := -g -Wall -O3 $(DEFINES) $(INCLUDE)
CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H#i think you should do anything here
#下面的基本上不需要做任何改动了#source file
#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))).PHONY : everything objs clean veryclean rebuildeverything : $(TARGET)all : $(TARGET)objs : $(OBJS)rebuild: veryclean everythingclean :rm -fr *.overyclean : cleanrm -fr $(TARGET)$(TARGET) : $(OBJS)$(AR) cru $(TARGET) $(OBJS)$(RANLIB) $(TARGET)

3、生成动态链接库的makefile

######################################
#
#
#######################################target you can change test to what you want
#共享库文件名,lib*.so
TARGET  := libtest.so#compile and lib parameter
#编译参数
CC      := gcc
LIBS    :=
LDFLAGS :=
DEFINES :=
INCLUDE := -I.
CFLAGS  := -g -Wall -O3 $(DEFINES) $(INCLUDE)
CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H
SHARE   := -fPIC -shared -o#i think you should do anything here
#下面的基本上不需要做任何改动了#source file
#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))).PHONY : everything objs clean veryclean rebuildeverything : $(TARGET)all : $(TARGET)objs : $(OBJS)rebuild: veryclean everythingclean :rm -fr *.overyclean : cleanrm -fr $(TARGET)$(TARGET) : $(OBJS)$(CC) $(CXXFLAGS) $(SHARE) $@ $(OBJS) $(LDFLAGS) $(LIBS)

Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)相关推荐

  1. Makefile常用模板(静态链接库、动态链接库、可执行文件)

    本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile. 这些makefile都很简单,一般都是一看就会用,用法也很容 ...

  2. VC的静态链接库 动态链接库

    1.什么是静态连接库,什么是动态链接库         静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了. ...

  3. Makefile生成 静态链接库万能模板(当前文件夹、递归全部文件夹编译成.a)

    感谢:Makefile常用万能模板(包括静态链接库.动态链接库.可执行文件) https://www.bbsmax.com/A/Vx5MyvWv5N/ 单文件下makefile编译成静态 ###### ...

  4. libcurl linux 静态链接库_Linux学习:Makefile 模板(动态库、静态库、可执行程序)...

    1.编译动态库 ############################################################# # Makefile for shared library. ...

  5. linux 生成和使用动态链接库和静态链接库的Makefile编写

    引用 Jesse Rei 的 linux 生成和使用动态链接库和静态链接库的Makefile编写 生成和使用动态链接库和静态链接库的Makefile编写 1. 概述 介绍linux下生成和使用动态链接 ...

  6. Linux下Makefile中动态链接库和静态链接库的生成与调用

    背景:写这篇博客的原因是:最近在搞嵌入式,需要交叉编译opencv库文件,自己写Makefile,通过arm-linux-g++编译.链接.生成可执行文件,从而实现了移植的过程.平台是Toradex的 ...

  7. GCC 编译 C(C++)静态链接库(gcc -L、gcc -l)和动态链接库(gcc -fPIC -shared)的创建和使用

    1. 库文件 所谓库文件,读者可以将其等价为压缩包文件,该文件内部通常包含不止一个目标文件(也就是二进制文件). 值得一提的是,库文件中每个目标文件存储的代码,并非完整的程序,而是一个个实用的功能模块 ...

  8. 静态链接库与动态链接库详解

    以下内容源于C语言中文网相关内容的学习整理,如有侵权请告知删除. 一.库文件的简介 库文件,其等价为压缩包文件.该文件内部通常包含不止一个目标文件(也就是二进制文件),每个目标文件存储的代码,并非完整 ...

  9. Linux下的静态链接库和动态链接库编程

    Linux下的静态链接库和动态链接库编程 参考: Linux下的静态链接库和动态链接库编程 - Histring - 博客园 Mac下静态库和动态库的创建和使用_C/C++_vincent2610的专 ...

最新文章

  1. java商城pom,使用maven创建Java购物商城系统的common工程
  2. AlexNet代码解读
  3. 针对于高频低频图像的理解
  4. linux下重启weblogic(关闭和启动)
  5. RunTime类,后台快速打开浏览器
  6. Spring Cloud Feign注意点
  7. glove中文词向量_Summary系列glove模型解读
  8. 【clickhouse】clickhouse 大表删除 Size 256G is greater than max_[table/partition]_size_to_drop 50GB
  9. django项目基础
  10. python的设计哲学_Python的设计哲学--zen of Python
  11. 16qam星座图 matlab,16QAM星座图
  12. 独家首发强大的个性生成工具箱微信小程序源码,超多功能的合成
  13. 案例|工业物联网解决方案·智慧钢厂高性能安全数采
  14. 【设计模式 三】实战工厂汽车代工之工厂模式-简单模式
  15. 亚马逊运营listing优化A+页面
  16. css气泡图片上下浮动
  17. Matlab中的参数解析
  18. 【Solidity】函数returns多个值的接收方式
  19. vue 移动端语音输入教程
  20. xilinx基础篇Ⅰ(2)下载器驱动安装

热门文章

  1. 应用程序性能分析利器 —— Visual Studio Profiler
  2. IE 下 href 的 BUG
  3. MyBatis构建sql时动态传入表名以及字段名
  4. linux I/O--I/O多路复用--select总结(三)
  5. 键盘各键对应的ASCII码值
  6. Spring4MVC 请求参数映射和Content-type
  7. 关于纯cs3动画的五个原创实例分享
  8. ssm中使用hibernate-validator验证BO
  9. 分享一些有趣的面试智力题
  10. 微软DevWow博客达人征文大赛