关于windows下的makefile学习
文中部分引用自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225
windows下makefile环境配置见于:http://www.cnblogs.com/cvbnm/articles/1954872.html
最近我们的助教让我们写一个贪食蛇的小程序,虽然难度并不大,但却对我们的整体编程能力的提高有一定的帮助,其中在他的提供的框架中用到了makefile,我之前代码打了不少,但并没有系统的学习编程,因此对makefile并不了解,今天在网上查了资料后发现windows下的makefile与linux下的makefile有一定的区别,经过几次尝试终于写出了自己的第一个makefile,特此记下。
首先,单文件的makefile较为简单,这里就不提了,主要是多文件的makefile较难掌握。
在我的文件中我写了一下几个文件:main.cpp, map.cpp, map.h, makefile(无后缀名,且此文件名不能更改)
main.cpp:
// 学习编程的小菜鸟
// http://www.cnblogs.com/zhuangshq/
#include <iostream>
#include "map.h" using namespace std; int main() {
cout << "Hello Makefile!" << endl;
run();
return ;
}
map.cpp:
// 学习编程的小菜鸟
// http://www.cnblogs.com/zhuangshq/ #include <iostream>
#include "map.h"
#ifndef NULL
#define NULL 0
#endif // NULL using namespace std; void run() {
// loadMap(1);
// printMap();
cout << "make success!" << endl;
}
map.h:
// 学习编程的小菜鸟
// http://www.cnblogs.com/zhuangshq/ #ifndef MAP_H
#define MAP_H // run
void run(); #endif
makefile:
// 学习编程的小菜鸟
// http://www.cnblogs.com/zhuangshq/ test: main.o map.o
g++ main.o map.o -o test
main.o: main.cpp
g++ -c main.cpp -o main.o
map.o: map.cpp
g++ -c map.cpp -o map.o
clean:
rm *.o *.exe
以上代码实现在main.cpp中调用map.cpp中的run函数,在下面我们来分析makefile的内容:
根据makefile的语法,
target ... : prerequisites ...
command
...
...
target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)。
prerequisites就是,要生成那个target所需要的文件或是目标。
command也就是make需要执行的命令。(任意的Shell命令)
那么我们的第一行生成的目标文件就是test.exe,而test.exe是由main.o和map.o生成的,接下来的两个语段分别生成了main.o和map.o
接下来我们只需要在上述文件所在的文件夹中打开命令行窗口并执行nmake命令即可生成test.exe,执行nmake clean命令即可删除生成的文件。
关于windows下的makefile学习的更多相关文章
- [转]Windows平台下Makefile学习笔记
Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译 ...
- <转>Windows平台下Makefile学习笔记(二)
本文转自:http://blog.csdn.net/clever101/article/details/8286066 上次我们学习了怎么用Makefile编译一个控制台工程.这次我们学习一下如何使用 ...
- Windows 下的 Makefile 编写
Windows 下的 Makefile 编写(一)Makefile的基本规则 作者:cntrump Makefile对于很多人来说是陌生的,特别是习惯于使用 IDE 的人来说,似乎没有听说过 Make ...
- <转>Windows平台下Makefile学习笔记(一)
本文转自:http://blog.csdn.net/clever101/article/details/8147352 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发 ...
- 【VS开发】Windows平台下Makefile学习笔记
作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开 ...
- Windows下使用MakeFile(Mingw)文件
下面是我基于<C++GUI QT4编程(第二版)> 2.3节快速设计对话框编写例子地址: https://files.cnblogs.com/files/senior-engineer/g ...
- windows下Bat命令学习
一.基础语法:1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令.可以使用任何文本文件编辑工具创建和修改.2.批处理是一种简单的程序,可以用 if 和 goto 来控制 ...
- Windows 下运行Makefile文件
下载并安装Microsoft Visual Studio2017 配置环境变量: 计算机右击-属性-高级系统设置-环境变量-选择Path编辑-添加nmake的路径: D:\Microsoft Visu ...
- 在windows下搭建linux-c学习环境
下载virtualbox并安装: https://www.virtualbox.org/wiki/Downloads 现在vagrant并安装: https://www.vagrantup.com/d ...
随机推荐
- Linux 进程级开启最大文件描述符 调优
开启最大文件数 系统可以开启的最大文件描述符(可同时开启最多的文件数),最大开启65535,可根据需求进行调优. 查看系统当前可开启最大文件描述符数 ulimit -n [root@localhost ...
- GuidePage底部导航栏
import 'package:flutter/material.dart'; import 'News.dart'; import 'Video.dart'; import 'Chat.dart'; ...
- 马上AI全球挑战者大赛-违约用户风险预测
方案概述 近年来,互联网金融已经是当今社会上的一个金融发展趋势.在金融领域,无论是投资理财还是借贷放款,风险控制永远是业务的核心基础.对于消费金融来说,其主要服务对象的特点是:额度小.人群大.周期短, ...
- stlcky footers布局小技巧
sticky-footer解决方案 在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果 ...
- _map_char_stats
可以控制玩家进入地图后进行属性平衡. `comment` 备注 `map` 地图ID `vip`vip等级 `shengming`生命 `liliang` 力量 `minjie` 敏捷 `zhili` ...
- (译)xDS REST and gRPC protocol
xDS REST and gRPC protocol 原文地址:xDS REST and gRPC protocol. envoy可通过文件系统.一个或多个管理服务器来发现各种动态资源.这些服务发现和 ...
- MySQL字符串列与整数比较
一.问题说明 为了简便在存储时我们经常将整型字段也以字符串形式存储(如id值),但在筛选比较时就需要将该字段转为数值类型. 二.处理办法 2.1 使用cast函数进行类型转换 cast函数格式---- ...
- Python Flask框架
Python有很多Web框架,可谓是百家争鸣,我这里列出几个比较叼的几个框架 Django 市场占有率最高,官方文档几近完美,但是适合比较大的项目,小项目会显得累赘. Tornado ...
- Android开发 ---xml构建选项菜单、上下文菜单(长按显示菜单)、发通知、发送下载通知
1.activity_main.xml 描述: 定义了一个TextView和三个按钮 <?xml version="1.0" encoding="utf-8&quo ...
- raid的一些简单知识
日一.RAID定义RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁 ...