MakeFile简单示例
简单的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简单示例的更多相关文章
- akka简单示例-1
刚刚开始接触akka,网上找了2个简单示例,并在公司运营机器上尝试,踩了一些坑,在此记录. 1. 本地hello world [torstan@sparkb5-i ~/akka_example/hel ...
- Linux内核模块简单示例
1. Linux 内核的整体结构非常庞大,其包含的组件也非常多,使用这些组件的方法有两种: ① 直接编译进内核文件,即zImage或者bzImage(问题:占用内存过多) ② 动态添加 * 模块本身并 ...
- Linux下的C Socket编程 -- server端的简单示例
Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...
- Gcc的Makefile简单使用
Gcc的Makefile简单使用http://blog.chinaunix.net/uid-9330295-id-2425867.html
- C# 构建XML(简单示例)
C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...
- 根据juery CSS点击一个标签弹出一个遮罩层的简单示例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- demo工程的清单文件及activity中api代码简单示例
第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...
- spring-servlet.xml简单示例
spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...
- SignalR 简单示例
一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...
随机推荐
- 超级干货:Air780E之RS485通信篇,你学会了吗?
今天,我们来学习低功耗4G模组Air780E的RS485通信,同学们,你学习了吗? 一.RS485简介 物联网(IoT)在工业场景中的应用越来越广泛,而RS485是一种常见的通信协议,广泛应用于 ...
- 九、FreeRTOS学习笔记-列表和列表项
列表和列表项的简介 列表是 FreeRTOS 中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS中的任务. 列表项就是存放在列表中的项目 列表相当于链表,列表项相当于节点,Fre ...
- 项目监控之sentry
github: https://github.com/getsentry/sentry 1.什么是sentry? 当我们完成一个业务系统的上线时,总是要观察线上的运行情况,对于每一个项目,我们都没办法 ...
- 【C++】关于 Visual Studio 的使用技巧(保姆级教程)
目录 fliter 视图 输出文件位置设置 查看预处理结果 将目标文件转换为可读的汇编 自定义程序入口 调试时查看变量在内存中的具体值 查看代码的反汇编 fliter 视图 visual studio ...
- WebSocket事件
优点 双通信,减少延迟 四个主要的Web Socket API事件: ·打开 onopen 当在客户端和服务器建立连接,就会从Web Socket实例触发open事件.它被称为客户端和服务器之间的初始 ...
- IDEA如何使用快捷键进行驼峰命名转换
idea菜单栏-file-settings-plugins-在marketplace搜索"CamelCase"-点击安装 安装后重新打开idea,选中内容,使用快捷键:shit+a ...
- VLC 播放完毕后自动退出的问题
1.打开设置 2.打开全部显示 3.取消自动退出
- 【原创】ARM64 实时linux操作系xenomai4(EVL)构建安装简述
目录 0 环境说明 1 内核构建 2 库编译 方式1 交叉编译 方式2 本地编译 3 测试 单元测试 hectic:EVL 上下文切换 latmus:latency测试 4 RK3588 xenoma ...
- Datadog发布云成本现状报告:83%的容器支出被闲置资源浪费
原文链接:https://www.datadoghq.com/state-of-cloud-costs/ 编译:CloudPilot AI 尽管灵活多样的云服务为云成本优化提供了诸多机会,但企业在提升 ...
- Flutter TickerProvider使用
Flutter TickerProvider使用 当需要使用Animation controller时,需要在控制器初始化时传递一个vsync参数,此时需要用到TickerProvider,例如 cl ...