Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用
来源:互联网 发布:淘宝评论图片福利链接 编辑:程序博客网 时间:2024/06/11 05:25
首先先说一下Linux吧因为这也是博主最早接触的编程开发环境所以比较熟悉的!
Linux下就说GCC GCC编译如果不指定编译选项的话是一步到位没有额外的后缀名文件!
.i文件:.i文件是GCC -E预处理之后所生成的文件,里面包含着已经完成宏替换,条件编译以及头文件包含等宏指令!
.s文件:.s文件是GCC -S把预处理文件(.i)翻译成汇编代码的文件,包括头文件包含函数语法调用全部都会翻译成汇编指令!
.o文件:.o文件是GCC -C把汇编文件(.s)翻译成目标代码的文件,这一步会把所有的汇编代码统统翻译成CPU可认识的二进制数据!
-x属性:-x属性是GCC链接.o文件生成的可执行文件,一般在Linux下的文件管理系统是不根据扩展名做后缀的一般是根据文件权限来判断文件属性的,在Linux下可以使用ls -l 文件名 命令查看一个文件的权限 如果带有-x权限那么这个文件就属于可执行文件!
.a文件:静态库文件是多个.o文件的集合!可以使用“ar -r 静态库文件名.a 汇编文件.o” 生成!
.so文件:动态库文件是多个.o文件的集合!可以使用“GCC -shared -fPCI -o 动态库文件名.so 汇编文件.o” 生成!
.pch文件:头文件预编译文件,这里包含了已经编译好的目标文件,使用头文件预先编译可以大大提高编译速率,详细可以去看我的“深度剖析“GCC编译器编译过程“这一篇文章
下面说一说Windows系统上的Visual Studio编译所生成的文件因为Visual Studio是博主在Windows开发下所擅长的IDE
.i文件:.i文件是Visual Studio预处理之后所生成的文件,里面包含着已经完成宏替换,条件编译以及头文件包含等宏指令!
.s文件:.s文件是Visual Studio把预处理文件(.i)翻译成汇编代码的文件,包括头文件包含函数语法调用全部都会翻译成汇编指令!
.obj文件:.obj文件是Visual Studio把汇编文件(.s)翻译成目标代码的文件,这一步会把所有的汇编代码统统翻译成CPU可认识的二进制数据!
.exe文件:.exe文件是Visual Studio链接之后生成的可执行文件!
.lib文件:.lib文件是Windows下的静态库文件!同样也是多个.o文件的集合!
.dll文件:.dll文件是Windows下的动态库文件!也是多个.o文件的集合!
.pch文件:头文件预编译文件,这里包含了已经编译好的目标文件,一般情况下Visual Studio会自动进行头文件预编译因为这样可以提高编译速率,且当你修改了头文件内容或者.cpp文件时Visual Studio会重新预编译头文件!
.pdb文件:Visual Studio调试时所生成的文件,pdb文件主要保存了Visual Studio调试时所需要的基本信息,例如变量名,源文件名,函数名,栈指针(帧指针)一般只会在调试模式下才会生成pdb文件!pdb文件必须和调试程序文件名一致!因为调试模式下Visual Studio在调试程序时加载pdb文件是根据调试程序文件名来加载的!
.ilk文件:当你的Visual Studio第一次使用增量链接时所生成的文件里面包含了链接信息!增量链接是根据上次一次的链接信息而编译修改后的链接部分这样可以达到提高编译速率的效果而不是重新把整个项目都编译一遍,这个时候就需要上一次的链接信息而ilk文件里保存上一次的链接信息编译器可以从ilk文件里读取!
.html文件:Visual Studio生成的编译日记,里面包含了编译信息!
.sln文件:解决方案文件,sln包含着这个项目组里所有工程文件的详细信息!
.suo文件:包含着该解决方案配置信息,每个解决方案里项目在Visual Studio中的配置不一样所以每次Visual Studio运行解决方案都会读取.suo文件里的用户配置信息!
.project文件:解决方案文件,包含着项目里所需文件!也就是说一般情况下打开这个文件Visual Studio会从这个文件中获取到这个解决方案项目组里有那些文件!然后一并加载到工程当中去!
- Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用
- gcc下.a库文件的编译生成和使用
- windows下使用Visual Studio编译可以调试的FFmpeg
- LInux 下的visual studio
- linux下的gcc编译
- linux系统GCC下编译选项-Wall和-Werror的作用
- windows 下使用gcc编译. c文件的实现方法。
- jasoncpp在visual studio下的编译和使用
- visual studio 2005下xvid的编译
- 对gcc编译和linux下proc编译的总结
- gcc编译和linux下proc编译的总结
- Linux 下重新编译Windows下生成的Qt工程
- Linux 下重新编译Windows下生成的Qt工程
- Linux 下重新编译Windows下生成的Qt工程
- Linux 下重新编译Windows下生成的Qt工程
- Linux 下重新编译Windows下生成的Qt工程 .
- 建立Windows下的GCC编译环境
- 建立Windows下的GCC编译环境
- Android中使用Handler造成内存泄露的分析和解决
- CRLF注入漏洞
- Hibernate五大核心(类/接口)简述
- Spring(19)——Profile(一)
- imread---matlab和openCVf返回值的区别
- Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用
- Android View事件分发机制学习笔记
- JDK环境变量配置
- 1232畅通工程(并查集)
- A: 2016
- Linux之more指令
- 【今日荐文】4位超60岁程序员大爷的生存秘籍
- AD 和 DA-基本概念
- eclipse中方法注释@Override报错解决