【Windows 应用程序开发详解】三.Windows开发工具配置与使用
- 一.Visual C/C++
我们都知道在应用程序开发的时候都是要依赖于开发工具的,Windows主机应用程序绝大多数都是使用C或者C++语言开发的,所以C\C++编译器和链接器等程序生成工具是我们开发Windows主机应用程序的必备工具,本篇文章将详细说明这些.Windows开发工具的配置与使用,以及如何使用微软提供的头文件与库文件来去构造windows应用程序。
一.Visual C/C++
- cl.exe编译器
cl.exe文件是Visual C\C++的编译器,可以将程序源代码文件编译成obj文件,cl.exe命令行参数的形式如下: - 命令行参数
CL 【option...】 file ... 【option...】 file ...【lib...】【@command-file】【/link link-opt】
参数 | 含义 |
option | 指一个或多个编译选项 |
file | 编译器必要参数,file是一个或多个所需要编译的源文件,也可以是.obj文件或库文件 |
lib | 用于指定一个或多个库名,cl.exe直接将这些名称传递给链接器,lib是cl.exe的可选参数 |
command-file | 包含多个选项和文件名的文件,为可选参数 |
link-opt | 可选参数,一个或多个链接器选项,CL将这些选项传递给连接器 |
3.编译器选项
- Option参数是cl.exe的编译选项,是cl.exe命令行参数中最复杂、也是最常使用的,下述为最常用的一些编译选项
选项 | 用途 |
/arch | 使用SSE或SSE2指令生成代码,对程序进行优化 |
/bigobj | 增加.obj文件中的可寻址节数 |
/clr | 生成要在公共语言运行库上运行的输出文件 |
/EH | zhi ding |
/fp | 指定浮点行为 |
/Ge | 激活堆栈探测 |
/GF | 启用字符串池 |
/Gm | 启用最小重新生成 |
/GR | 启用运行时类型信息(RTTI) |
/Gs | 控制堆栈探测 |
/GX | 启用同步异常处理 |
/Gy | 启用函数级链接 |
- 与调试有关的编译选项
/GS | 缓冲区安全检查 |
GZ | 与/RTC1相同 |
/RTC | 启用运行时错误检查 |
/Wp64 | |
/Yd | 将完整的调试信息放在所有对象文件中 |
/Y1 | 创建调试库时插入PCH引用 |
/Z7 /Zi /ZI | 生成调试信息,分别表示三种不同的调试符号文件格式 |
- 与程序优化有关的编译选项
/O1 /O2 /Od | 分别表示代码体积最小、代码速度最快、不使用优化,互斥 |
Ob1 | 控制内联函数展开 |
Oi | 生成内部函数 |
Os/Ot | 代码大小有限、代码速度优先 |
Ox | 使用最大优化 (/Ob2gity /Gs) |
Oy | 省略帧指针(仅限x86) |
/GL | 启用全程序优化 |
GT | 支持使用静态线程本地存储区分配的数据和线程安全 |