随笔分类 -  编译器

摘要:http://blog.csdn.net/success041000/article/details/6714195 1. 几个概念 1)编译:把源文件中的源代码翻译成机器语言,保存到目标文件中。如果编译通过,就会把CPP转换成OBJ文件。 2)编译单元:根据C++标准,每一个CPP文件就是一个编译 阅读全文
posted @ 2017-07-03 18:34 zzfx 阅读(350) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/nzbbody/p/3437868.html 1、解决什么问题? C++ 编译器是单独,分别编译的,每个cpp文件,进行预编译(也就是对#include,define 等进行文本替换),生成编译单元。编译单元是一个自包含文件,C++编译器对编译单元进行编 阅读全文
posted @ 2017-07-03 16:43 zzfx 阅读(504) 评论(0) 推荐(0) 编辑
摘要:一、C++编译模式 通常,在一个C++程序中,只包含两类文件——cpp文件和h文件。cpp文件被称作C++源文件,里面放的都是C++的源代码;h文件则被称作C++头文件,里面放的也是C++的源代码。 C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内 阅读全文
posted @ 2017-07-03 15:02 zzfx 阅读(565) 评论(0) 推荐(0) 编辑
摘要:原文网址为:http://lpy999.blog.163.com/blog/static/117372061201182051413310/ 个人认为有一些道理:所以转过来学习了。 用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字? 如果我想引用一个全局变量或函数 阅读全文
posted @ 2017-07-03 14:50 zzfx 阅读(304) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/qiaoconglovelife/p/5870000.html 加载(load) 将程序拷贝到存储器并运行的过程,由加载器(loader)执行。 链接分类 编译时(compile time)链接:也称为传统静态链接、静态链接; 加载时(load time 阅读全文
posted @ 2017-06-21 11:05 zzfx 阅读(236) 评论(0) 推荐(0) 编辑
摘要:摘自链接器与加载器 链接器和加载器,以及编译器和汇编器,与体系结构的细节密切相关,这包括硬件体 系结构和操作系统对目标计算机在体系结构方面的约定。本章中我们将会涉及足够的计算机 体系结构知识以理解链接器必须做的工作。本章所有对计算机体系结构的描述是经过考虑而 有所删减的,例如浮点和 I/O 这些不影 阅读全文
posted @ 2017-05-24 21:29 zzfx 阅读(851) 评论(0) 推荐(0) 编辑
摘要:http://vdisk.weibo.com/s/qyiJPywvmtvp#_loginLayer_1495631661496 阅读全文
posted @ 2017-05-24 21:26 zzfx 阅读(219) 评论(0) 推荐(0) 编辑
摘要:lipo otool nm objdump readelf MachOView class-dump -H /Applications/Calculator.app -o /Users/apple/Desktop/calculate\ heads 阅读全文
posted @ 2017-05-24 17:44 zzfx 阅读(367) 评论(0) 推荐(0) 编辑
摘要:http://blog.chinaunix.net/uid-25714468-id-5557081.html 链接器必须对这些可重定位目标文件完成两个主要任务: 符号解析。将每个符号引用刚好和一个符号定义联系起来。 重定位。链接器把每个符号定义与一个虚拟地址联系起来,然后修改所有对这些符号的引用,使 阅读全文
posted @ 2017-05-19 17:33 zzfx 阅读(2944) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/clearlylin/p/4656671.html 1、可执行程序产生流程 2、链接器 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程。这个文件可以被加载到存储器并执行。 链接可执行与编译时,也可执行与加载时,甚至执行与运行时。 链接器的 阅读全文
posted @ 2017-05-19 01:01 zzfx 阅读(286) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/zzxian/article/details/16820035 一、概述 过程图解如下: 二、编译过程 编译过程又可以分成两个阶段:编译和汇编。 2.1编译 编译是指编译器读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码 阅读全文
posted @ 2017-05-19 00:57 zzfx 阅读(227) 评论(0) 推荐(0) 编辑
摘要:静态库是.o文件的集合。 静态库没有链接,不做符号解析和绑定。 库只是编译的产物,不是链接的。 阅读全文
posted @ 2017-05-19 00:50 zzfx 阅读(390) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/du7793202641/article/details/53024231 符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。 符号表在编译 阅读全文
posted @ 2017-02-23 18:48 zzfx 阅读(1560) 评论(0) 推荐(0) 编辑
摘要:http://blog.sina.com.cn/s/blog_13de2f64d0102vcr8.html 一个现代编译器的主要工作流程如下: 源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object 阅读全文
posted @ 2017-02-23 18:40 zzfx 阅读(1597) 评论(0) 推荐(0) 编辑
摘要:第一篇摘自:http://www.21ic.com/app/embed/201103/79359.htm 1. 词法分析 词法分析器根据词法规则识别出源程序中的各个记号(token),每个记号代表一类单词(lexeme)。源程序中常见的记号可以归为几大类:关键字、标识符、字面量和特殊符号。词法分析器 阅读全文
posted @ 2017-02-23 18:38 zzfx 阅读(916) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/robinsongsog/article/details/51970878 semantic: 语言的意义 编译器的语义分析阶段将变量与其用法关联起来,检查每个表达式是否有正确的类型,还有, 将抽象的语法翻译成更简单的形式以 方便生成机器语言(码)。 符号表 阅读全文
posted @ 2017-02-20 18:13 zzfx 阅读(570) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/zhenjing/archive/2010/10/20/1856309.html C++中的类型查找过程相对简单,基本上就是名字查找,这里不再介绍。 对于 .cpp 文件中调用的一个函数 ( 或成员函数 ), 编译器主要做了下面三件事情 : 1 名字查找 阅读全文
posted @ 2017-02-20 17:30 zzfx 阅读(565) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/gengzhikui1992/article/details/50762309 为了完整地定义编程语言,我们需要: 语法,描述程序看起来是什么样的; 语义,描述程序的含义。 语法 语法的定义 每一种编程语言都有一系列规则,描述在那种语言中什么样的字符串被认为 阅读全文
posted @ 2017-02-20 17:25 zzfx 阅读(4663) 评论(0) 推荐(1) 编辑
摘要:http://blog.csdn.net/starlee/article/details/1406781 对于如下的类: class ClxECS{public: double Test(double dValue) { return dValue * 13; };private: int Test 阅读全文
posted @ 2017-02-20 17:15 zzfx 阅读(247) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/weiwangchao_/article/details/7165467 约在20世纪70年代以前,编译器编译源代码产生目标文件时,符号名与相应的变量和函数的名字是一样的。比如一个汇编源代码里面包含了一个函数foo,那么汇编器将它编译成目标文件以后,foo在 阅读全文
posted @ 2017-02-15 11:12 zzfx 阅读(317) 评论(0) 推荐(0) 编辑