简单的Makefile编写学了会点,不学又忘了。这里参考了多位大佬的Makefile教程,自己给自己写的示例,如有错误请告知一下我。

#version 1//最简单,没难度
hello : main.cpp one.cpp two.cpp
g++ -o hello main.cpp one.cpp two.cpp #version 2//将编译和链接分开,简化编译
CXX=g++
TARGET=hello
OBJ=main.o one.o two.o $(TARGET):$(OBJ)
$(CXX) -o $(TARGET) $(OBJ) main.o:main.cpp
$(CXX) -c main.cpp
one.o:one.cpp
$(CXX) -c one.cpp
two.o:two.cpp
$(CXX) -c two.cpp #version 3 简化编译命令
CXX=g++
TARGET=hello
OBJ=main.o one.o two.o
CXXFLAGS=-c -Wall $(TARGET):$(OBJ)
$(CXX) -o $@ $^
%.o:%.cpp
$(CXX) $(CXXFLAGS) $< -o $@
#-o是制定名称的意思 .PHONY: clean
clean :
rm -f *.o $(TARGET) #version 4
CXX=g++
TARGET=hello
SRC=$(wildcard *.cpp)
#找到当前目录下所有的cpp
OBJ=$(patsubst %.cpp,%.o,$(SRC))
#将.cpp替换为.o
CXXFLAGS=-c -Wall #^全部依赖;<第一个依赖
$(TARGET):$(OBJ)
$(CXX) -o $@ $^
%.o:%.cpp
$(CXX) $(CXXFLAGS) $< -o $@
.PHONY:clean
clean:
rm -f *.o $(TARGET)

MakeFile简单示例的更多相关文章

  1. akka简单示例-1

    刚刚开始接触akka,网上找了2个简单示例,并在公司运营机器上尝试,踩了一些坑,在此记录. 1. 本地hello world [torstan@sparkb5-i ~/akka_example/hel ...

  2. Linux内核模块简单示例

    1. Linux 内核的整体结构非常庞大,其包含的组件也非常多,使用这些组件的方法有两种: ① 直接编译进内核文件,即zImage或者bzImage(问题:占用内存过多) ② 动态添加 * 模块本身并 ...

  3. Linux下的C Socket编程 -- server端的简单示例

    Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...

  4. Gcc的Makefile简单使用

    Gcc的Makefile简单使用http://blog.chinaunix.net/uid-9330295-id-2425867.html

  5. C# 构建XML(简单示例)

    C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...

  6. 根据juery CSS点击一个标签弹出一个遮罩层的简单示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  8. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  9. spring-servlet.xml简单示例

    spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...

  10. SignalR 简单示例

    一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...

随机推荐

  1. 内核源码+vscode+bear+clang实现函数任意跳转,无缝跳转,无缝阅读,无缝开发

    一.准备工作 1.内核源码版本选择 务必有一份能编译通过的<内核源码>,本次选择5.10版本的. #说明:5.10版本的<内核源码>里,在 scripts/clang-tool ...

  2. GIt分布式管理工具

    Git(分布式版本控制工具) Git的学习是不依赖我们前面学习的知识,就算没有学习java也可以学习 Git就是一个类似于百度云盘的仓库 重点是要掌握使用idea操作Git,企业用的最多,一般不会去使 ...

  3. k8s-部署应用

    Deployment # app-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: app-web spec: ...

  4. 【网关开发】Openresty使用cosocket API 发送http与tcp网络请求

    背景 为网关提供健康检查功能时需要对节点发送http或者tcp探活请求.Openresty 提供cosocket来处理非阻塞IO. 实现 跟工程结合在一起,这里简单拼接数据结构 local funct ...

  5. 使用conditional 实现线程精准通讯

    实现3个线程之间依次执行 比如有3个线程A,B,C ,需要按照顺序执行,ABC,ABC 依次执行. 这个使用可以使用 Lock 的 conditional来实现线程之间精准通讯. 点击查看代码 pac ...

  6. Javascript 构造函数和类

    1.构造函数 含义:所谓"构造函数",就是专门用来生成实例对象的函数.它就是对象的模板,描述实例对象的基本结构.一个构造函数,可以生成多个实例对象,这些实例对象都有相同的结构 写法 ...

  7. 《JavaScript 模式》读书笔记(5)— 对象创建模式3

    这一篇,我们主要来学习了解下沙箱模式以及静态成员的相关内容. 五.沙箱模式 沙箱模式(sandbox pattern)解决了命名空间模式的如下几个缺点: 对单个全局变量的依赖变成了对应用程序的全局变量 ...

  8. 使用Flex布局的几个小技巧

    前情 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为 Flex 布局,如果说目前我开发中离不开的布局方式 ...

  9. Chats 开发指南

    Chats 开发指南 欢迎使用 Chats!在我上一篇博客 https://www.cnblogs.com/sdcb/p/18597030/sdcb-chats-intro 中,我介绍了 Chats ...

  10. 使用 VS Code 徒手构建 PDF 文件

    使用 VS Code 徒手构建 PDF 文件 PDF 文件是广泛应用的页面描述文件格式,从本质上讲,文件内部的结构混合使用了文本格式描述和二进制格式描述,对于简单的文件,比如说我们今天要创建的第一个 ...