没有合适的资源?快使用搜索试试~ 我知道了~
VC6.0编译器介绍.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 87 浏览量
2021-10-02
12:29:01
上传
评论
收藏 35KB PDF 举报
温馨提示
试读
5页
VC6.0编译器介绍.pdf
资源推荐
资源详情
资源评论
VC6.0 编译器介绍
VC 的处理流程,大致分为两步:编译和连接。源文件通过编译生成了 .obj 文件;所有 .obj
文件和 .lib 文件通过连接生成 .exe 文件或 .dll 文件。下面,我们分别讨论这两个步骤的一些细
节。
编译参数的设置。主要通过 VC 的菜单项 Project->Settings->C/C++ 页来完成。我们可以
看到这一页的最下面 Project Options 中的内容,一般如下:
/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D
"_AFXDLL" /D "_M
BCS" /Fp"Debug/WritingDlgTest.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
各个参数代表的意义, 可以参考 Msdn。比如 /nologo 表示编译时不在输出窗口显示这些
设置(我们可以把这个参数去掉来看看效果) 等等。一般我们不会直接修改这些设置, 而是
通过这一页最上面的 Category 中的各项来完成。
1) General:一些总体设置。 Warning level 用来控制警告信息,其中 Level 1 是最严重的
级别; Warnings as errors 将警告信息当作错误处理; Optimizations 是代码优化,可以在
Category 的 Optimizations 项中进行更细的设置; Generate browse info 用以生成 .sbr 文件,记
录类、变量等符号信息,可以在 Category 的 Listing Files 项中进行更多的设置。 Debug info ,
生成调试信息: None,不产生任何调试信息(编译比较快) ;Line Numbers Only ,仅生成全
局的和外部符号的调试信息到 .OBJ 文件或 .EXE 文件,减小目标文件的尺寸; C 7.0-
Compatible ,记录调试器用到的所有符号信息到 .OBJ 文件和 .EXE 文件; Program Database,
创建 .PDB 文件记录所有调试信息; Program Database for "Edit & Continue" ,创建 .PDB 文件
记录所有调试信息,并且支持调试时编辑。
2) C++ Language :pointer_to_member representation 用来设置类定义 /引用的先后关系,
一般为 Best-Case Always 表示在引用类之前该类肯定已经定义了; Enable Exception
Handling ,进行同步的异常处理; Enable Run-Time Type Information 迫使编译器增加代码在
运行时进行对象类型检查; Disable Construction Displacements ,设置类构造 /析构函数调用虚
函数问题。
3) Code Generation:Processor 表示代码指令优化, 可以为 80386、80486、Pentium、Pentium
Pro,或者 Blend 表示混合以上各种优化。 Use run-time library 用以指定程序运行时使用的运
行时库 (单线程或多线程, Debug 版本或 Release版本),有一个原则就是,一个进程不要同
时 使 用 几 个 版 本 的 运 行 时 库 。 Single-Threaded , 静 态 连 接 LIBC.LIB 库 ; Debug
Single-Threaded,静态连接 LIBCD.LIB 库;Multithreaded ,静态连接 LIBCMT.LIB 库;Debug
Multithreaded ,静态连接 LIBCMTD.LIB 库; Multithreaded DLL ,动态连接 MSVCRT.DLL
库; Debug Multithreaded DLL ,动态连接 MSVCRTD.DLL 库。连接了单线程库就不支持多
线程调用,连接了多线程库就要求创建多线程的应用程序。
Calling convention 可以用来设定调用约定,有三种: __cdecl、__fastcall 和__stdcall。各
种调用约定的主要区别在于, 函数调用时, 函数的参数是从左到右压入堆栈还是从右到左压
资源评论
资料大全
- 粉丝: 14
- 资源: 26万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功