/GL(全程序优化)

启用全程序优化。

/GL[-]

备注

全程序优化允许编译器用有关程序中所有模块的信息执行优化。如果不执行全程序优化,则基于每个模块 (compiland) 执行优化。

默认情况下,权全程序优化是关闭的,因此必须显式地启用它。但是,也可以用 /GL- 显式地禁用它。

使用有关所有模块的信息,编译器能够:

  • 跨越函数边界优化寄存器的使用。

  • 更好地跟踪对全局数据的修改,允许减少加载和存储的数目。

  • 更好地跟踪可能由取消指针引用所修改的项组,减少加载和存储的数目。

  • 在模块中内联某个函数,即使该函数在另一个模块中定义。

/GL 生成的 .obj 文件将不可用于 EDITBINDUMPBIN 等链接器实用工具。

如果用 /GL/c 编译程序,应使用 /LTCG 链接器选项创建输出文件。

/ZI 无法与 /GL 一起使用。

以后的 Visual C++ 版本可能无法读取用当前版本中的 /GL 生成的文件格式。不应提供由用 /GL 生成的 .obj 文件组成的 .lib 文件,除非您永远愿意为希望用户使用的所有 Visual C++ 版本提供 .lib 文件的副本。

/GL 生成的 .obj 文件和预编译的头文件不应该用于生成 .lib 文件,除非将在生成 /GL .obj 文件的同一计算机上链接此 .lib 文件。链接时需要 .obj 文件的预编译头文件中的信息。

有关可用优化和全程序优化的限制的更多信息,请参见 /LTCG/GL 还使得按配置优化可用,请参见 /LTCG。按配置优化进行编译时,如果希望函数按配置优化排序,则必须使用 /Gy 或隐含使用 /Gy 的编译器选项进行编译。

在 Visual Studio 开发环境中设置此链接器选项

以编程方式设置此链接器选项

请参见

参考

编译器选项

设置编译器选项