编译 cpu,代码编译对cpu要求
对于非计算机行业的程来说,写C代码时写不出来的代码效率不是那么高,对编译器以及计算机处理数据和指令的操作流程也不是很了解。让我们走进编译器和计算机的世界,了解它们是如何工作的。以下内容为《深入理解操作系统》和《C性能优化》。
1.编译器是如何工作的?
以简单的“hello world n’”为例。
#包含stdio.h
int main()
printf( hello world n );
返回0;
在linux系统上,编译器完成从源文件hello.c到可执行文件hello的转换。翻译过程分为四个阶段:预处理、编译、汇编和链接,形成一个编译系统。
预处理阶段
gcc -E你好
主要功能:1。所有头文件都被扩展并写入源程序。
2.宏定义替换
3.不要检查程序语法。
生成的hello.i文件可以自己打开!
编译阶段
gcc -S你好
功能:1。检查语法的合法性。
2.编译器将hello.i文件翻译成汇编文件hello.s。
汇编阶段
gcc-c hello . s-o hello . o
汇编器把汇编文件翻译成机器指令,就是打开文件看到一些乱码。生成可执行代码你好
Hello view属性
你好:ELF 32位LSB可执行文件,Intel 80386,版本1 (SYSV),动态链接(使用共享库),用于GNU/Linux 2.6.15,未剥离