有了一定的基础,阅读一个大型的项目,我想这也是一个不错的学习途径吧。
这只是一个学习笔记,只记下那些我之前不了解,看了源码后现学的知识。
我的学习方法是下了GNU Make 和 GCC的帮助文档,通过Index快速查找需要的知识点。

1CONFIG ?= config.default
2- include $(CONFIG)

这两行的意思是包含一个名为config.default的文件。这个文件中定义了像编译何种语言版本,数据文件夹Data的位置等信息。
Make中给变量赋值有很多种方法,像=, ?=, := ......, ?=的意思是如果变量没定义过,就赋值。
include是包含文件,而-include是如果不存在这个文件,也不输出错误信息。
看来这个文件是可有可无的了,起码不影响编译程序,否则为什么要用?=和-include呢?

5 ifeq ($( findstring $(LNG), DUTCH ENGLISH FRENCH GERMAN ITALIAN POLISH RUSSIAN RUSSIAN_GOLD),)
6$(error LNG must be set to one of DUTCH, ENGLISH, FRENCH, GERMAN, ITALIAN, POLISH, RUSSIAN or RUSSIAN_GOLD. Copy config.template to config.default and uncomment one of the languages)
7 endif

一个判断语句,看看要编译成什么语言。
make的条件判断语句
ifeq(exp, val)
doSomeThing
endif

make的函数调用形式retval $(function arguments)
findstring函数的定义是retval $(findstring find, in) ; find : 找什么(单词,用空格隔开) in : 在哪里找 retval : 找到的单词

因此第五行的意思是在LNG这个字符串里找是不是有DUTCH,ENGLISH.....这些语言,没找到(值为空),输出错误信息,停止执行Make。

47CFLAGS += -Wwrite-strings

49CFLAGS += -DJA2

CFLAGS是编译选项。-W在GCC中用来设置输出那些警告信息。47行的意思是当程序写字符串时输出警告。-D是在预编译阶段定义常量(#define)。49行相当于程序文件中的#define JA2

太晚了,明天继续。

铁血联盟2源码学习笔记--Makefile边看边学相关推荐

  1. 铁血联盟2源码学习笔记--Makefile边看边学3

    话接上篇 491    .c.d: 492        @echo '===> DEP $<' 493        $(Q)$(CC) $(CCFLAGS) -MM $< | s ...

  2. 铁血联盟2源码学习笔记--Makefile边看边学2

    话接上篇 116 SRCS := 117 SRCS += Build/AniViewScreen.cc 这里又出现了一个设置符':='.与常见的编程语言不一样,'='后如果接别的变量,这个右值变量是不 ...

  3. Java多线程之JUC包:Semaphore源码学习笔记

    若有不正之处请多多谅解,并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/go2sea/p/5625536.html Semaphore是JUC ...

  4. RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的?

    RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 文章目录 RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 前言 项目 ...

  5. Vuex 4源码学习笔记 - 通过Vuex源码学习E2E测试(十一)

    在上一篇笔记中:Vuex 4源码学习笔记 - 做好changelog更新日志很重要(十) 我们学到了通过conventional-changelog来生成项目的Changelog更新日志,通过更新日志 ...

  6. Vuex 4源码学习笔记 - Vuex是怎么与Vue结合?(三)

    在上一篇笔记中:Vuex源码学习笔记 - Vuex开发运行流程(二) 我们通过运行npm run dev命令来启动webpack,来开发Vuex,并在Vuex的createStore函数中添加了第一个 ...

  7. jquery源码学习笔记三:jQuery工厂剖析

    jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...

  8. 雷神FFMpeg源码学习笔记

    雷神FFMpeg源码学习笔记 文章目录 雷神FFMpeg源码学习笔记 读取编码并依据编码初始化内容结构 每一帧的视频解码处理 读取编码并依据编码初始化内容结构 在开始编解码视频的时候首先第一步需要注册 ...

  9. Apache log4j-1.2.17源码学习笔记

    (1)Apache log4j-1.2.17源码学习笔记 http://blog.csdn.net/zilong_zilong/article/details/78715500 (2)Apache l ...

最新文章

  1. File ipython-input-20-ac8d4b51998e
  2. opencv 图像 抠图 算法_人人可用的在线抠图,AI自动化的那种!北大校友算法玩出新高度...
  3. 在linux下安装matlab2013a的经验
  4. tp5某个字段相同的数据只取一次_多维分析数据仓库建设建议-面向主题的建模...
  5. PHP写的一个轻量级的DI容器类(转)
  6. layui2.4.0前的table隐藏列
  7. Oracle数据库入门——常用的数据字典
  8. 仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程
  9. 关于redis集群脑裂及其解决方案
  10. [转载]DevOps建立全生命周期管理
  11. LINUX SHELL中使用sed匹配某一行并替换这一行的内容
  12. Qt 局域网聊天工具
  13. 基于Labview的简易计算器设计
  14. 火山安卓解析某盘直连
  15. 文件下载,请求头的写法
  16. 基于Arch的live系统
  17. 微信jssdk签名生成代码示例PHP版本
  18. js判断android手机浏览器,【笔记】js判断移动端系统及浏览器
  19. 每天一个IDA小技巧(二):基本代码转换
  20. Gigaphoton宣布产品列表刷新计划

热门文章

  1. 哈工大(深圳)-南大通用云数据库研究中心举办成果展 共助国产数据库发展
  2. python浮点数怎么表示_python浮点数
  3. YGG 经理人杯总决赛已圆满结束,来看看这份文字版总结!
  4. c语言穷举法举例,C语言穷举法经典例题.ppt
  5. 前端小练习——九宫格布局
  6. Surface Pro恢复出厂设置错误“The computer restarted unexpectedly or encountered an unexpected”
  7. Selinux是什么?
  8. mysql 字段名排序_mysql 字段属性 与 排序
  9. python列表中的字典怎么遍历_Python循环遍历列表中的嵌套字典或字典
  10. Python蹒跚学步0:关于Winpython的安装