编程语言
文章平均质量分 63
bobuddy
这个作者很懒,什么都没留下…
展开
-
源代码C语言编译过程
从源代码生成可执行文件可以分为四个步骤,分别是预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。下图是 GCC 生成 a.out 的过程:预处理(Preprocessing)预处理过程主要是处理那些源文件和头文件中以#开头的命令,比如#include、#define、#ifdef等。预处理的规则一般如下:将所有的#define删除,并展开所有的宏定义。 处理所有条件编译命令,比如#if、#ifdef、#elif...原创 2021-03-10 16:51:01 · 2963 阅读 · 1 评论 -
程序安装基本原理
基本原理:就是将程序的二进制可执行文件拷贝到某个目录,设置一些路径。如果程序运行时需要一些库,将这些库拷贝到系统目录即可。程序的安装基本上要经过下面四个步骤:1) 将程序的可执行文件从安装包所在的位置,拷贝到要安装的目录。安装程序的时候,程序会给用户指定一个默认的安装目录,如果用户需要,也可以自定义安装,改变安装目录。一般所谓的“绿色软件”到此就安装结束了,可以使用了。2) 如果有必要,可以向系统目录拷贝一些动态链接库(DLL)。(可选操作)有的程序,比如大型游戏,可能需要很多动态链接库(DLL原创 2021-03-08 17:48:59 · 2632 阅读 · 0 评论 -
GCC分步编译C++程序
通过前面几节的讲解,已经就 gcc(g++)指令可用的 -E、-S、-c 以及 -o 选项的功能和用法做了详细的讲解。在此基础上,本节将对“如何分步编译C/C++程序”这个问题做一个完整的解答。接下来,我将以 g++ 指令分别对 C++ 源程序做预处理、编译、汇编和链接操作为例,完整地给读者演示如何分步编译源代码程序。样例程序如下://位于 demo.cpp 文件中 #include <iostream> using namespace std; int main()..转载 2020-07-17 20:17:24 · 799 阅读 · 0 评论 -
GCC编译流程
GCC编译器在编译一个C语言程序时需要经过以下 4 步:将C语言源程序预处理,生成.i文件。 预处理后的.i文件编译成为汇编语言,生成.s文件。 将汇编语言文件经过汇编,生成目标文件.o文件。 将各个模块的.o文件链接起来生成一个可执行程序文件。GCC 编译流程如下图所示:.i文件、.s文件、.o文件可以认为是中间文件或临时文件,如果使用 GCC 一次性完成C语言程序的编译,那么只能看到最终的可执行文件,这些中间文件都是看不到的,因为 GCC 已经经它们删除了。当然,可以使用 ..转载 2020-07-17 19:08:45 · 379 阅读 · 0 评论 -
C语言之内存四区模型和函数调用模型
内存四区模型 图1、内存四区模型流程说明1、操作系统把物理硬盘代码load到内存2、操作系统把c代码分成四个区3、操作系统找到main函数入口执行1、内存四区:一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局转载 2017-11-25 10:17:22 · 562 阅读 · 0 评论 -
内存四区模型与指针
数据类型的封装 1、void的字面意思是“无类型”,void 则为“无类型指针”,void 可以指向任何类型的数据。 2、用法1:数据类型的封装 int InitHardEnv(void **handle); 典型的如内存操作函数memcpy和memset的函数原型分别为 void * memcpy(void *dest, const void *src, size_t l转载 2017-11-25 10:27:59 · 263 阅读 · 0 评论