fbpx
维基百科

Crt0

crt0(也叫做c0)是连接C程序上的一组执行启动例程,它进行在调用这个程序的主函数之前所需要的任何初始化工作。它一般的都采用叫做crt0.o目标文件形式,经常采用汇编语言编写,链接器自动的将它包括入它所建造的所有可执行文件[1]

简介

crt0包含大多数运行时库的基本部分。因此,它进行的确切工作依赖于程序的编译器、操作系统和C标准库实现[1]。除了运行时环境和工具链所需要的初始化工作,crt可以进行编程者定义额外操作,比如执行C++全局构造器和携带GCC((constructor))属性的C函数[2][3],此时通常将其改称为crt1

“crt”表示“C runtime”,“0”表示“最开始”。然而,当程序使用GCC来编译的时候,它也用于在C之外的语言,对于特殊使用场景可获得crt0的可替代版本,例如,分析器gprof要求它的程序同gcrt0一起编译[4]

样例 crt0.s

下面是针对linux x86_64的采用at&t语法的例子。

.text .globl _start _start: # _start is the entry point known to the linker  mov %rsp, %rbp # setup a new stack frame  mov 0(%rbp), %rdi # get argc from the stack  lea 8(%rbp), %rsi # get argv from the stack  call main # %rdi, %rsi are the first two args to main  mov %rax, %rdi # mov the return of main to the first argument  call exit # terminate the program 

参见

引用

  1. ^ 1.0 1.1 . embecosm.com. 2010 [2013-12-30]. (原始内容存档于2013-12-30). 
  2. ^ . osdev.org. 2014-02-25 [2014-04-21]. (原始内容存档于2014-04-23). 
  3. ^ . osdev.org. 2014-04-08 [2014-04-21]. (原始内容存档于2014-04-23). 
  4. ^ . sourceware.org. [2013-12-30]. (原始内容存档于2013-12-31). 

外部链接

crt0, 关于简写为crt0的轨道交通线路, 请见, 重慶軌道交通環線, crt0, 也叫做c0, 是连接到c程序上的一组执行启动例程, 它进行在调用这个程序的主函数之前所需要的任何初始化工作, 它一般的都采用叫做crt0, o的目标文件形式, 经常采用汇编语言编写, 链接器自动的将它包括入它所建造的所有可执行文件中, 目录, 简介, 样例, crt0, 参见, 引用, 外部链接简介, 编辑crt0包含大多数运行时库的基本部分, 因此, 它进行的确切工作依赖于程序的编译器, 操作系统和c标准库实现, 除了运行时环. 关于简写为CRT0的轨道交通线路 请见 重慶軌道交通環線 crt0 也叫做c0 是连接到C程序上的一组执行启动例程 它进行在调用这个程序的主函数之前所需要的任何初始化工作 它一般的都采用叫做crt0 o的目标文件形式 经常采用汇编语言编写 链接器自动的将它包括入它所建造的所有可执行文件中 1 目录 1 简介 2 样例 crt0 s 3 参见 4 引用 5 外部链接简介 编辑crt0包含大多数运行时库的基本部分 因此 它进行的确切工作依赖于程序的编译器 操作系统和C标准库实现 1 除了运行时环境和工具链所需要的初始化工作 crt可以进行编程者定义额外操作 比如执行C 全局构造器和携带GCC的 constructor 属性的C函数 2 3 此时通常将其改称为crt1 crt 表示 C runtime 0 表示 最开始 然而 当程序使用GCC来编译的时候 它也用于在C之外的语言 对于特殊使用场景可获得crt0的可替代版本 例如 分析器gprof要求它的程序同gcrt0一起编译 4 样例 crt0 s 编辑下面是针对linux x86 64的采用at amp t语法的例子 text globl start start start is the entry point known to the linker mov rsp rbp setup a new stack frame mov 0 rbp rdi get argc from the stack lea 8 rbp rsi get argv from the stack call main rdi rsi are the first two args to main mov rax rdi mov the return of main to the first argument call exit terminate the program参见 编辑入口点 运行时系统引用 编辑 1 0 1 1 The C Runtime Initialization crt0 o embecosm com 2010 2013 12 30 原始内容存档于2013 12 30 Program initialization Creating a C library osdev org 2014 02 25 2014 04 21 原始内容存档于2014 04 23 Calling Global Constructors osdev org 2014 04 08 2014 04 21 原始内容存档于2014 04 23 Compiling a Program for Profiling GNU gprof sourceware org 2013 12 30 原始内容存档于2013 12 31 外部链接 编辑crt0 o vs crt1 o 页面存档备份 存于互联网档案馆 Mini FAQ about the misc libc gcc crt files 页面存档备份 存于互联网档案馆 Linux x86 program start up 页面存档备份 存于互联网档案馆 Hello from a libc free world Part 1 页面存档备份 存于互联网档案馆 March 16 2010 取自 https zh wikipedia org w index php title Crt0 amp oldid 70344029, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。