/Gy(启用函数级链接)/Gy (Enable Function-Level Linking)

允许编译器以打包函数 (COMDAT) 形式对各个函数进行打包。Allows the compiler to package individual functions in the form of packaged functions (COMDATs).




链接器需要函数进行单独打包为 Comdat 中排除或 DLL 或.exe 文件中的各个函数进行排序。The linker requires that functions be packaged separately as COMDATs to exclude or order individual functions in a DLL or .exe file.

可以使用链接器选项/OPT (优化)以从.exe 文件中排除未引用的封装的函数。You can use the linker option /OPT (Optimizations) to exclude unreferenced packaged functions from the .exe file.

可以使用链接器选项/ORDER (按顺序放置函数)将封装的函数包括.exe 文件中指定的顺序。You can use the linker option /ORDER (Put Functions in Order) to include packaged functions in a specified order in the .exe file.

如果实例化为调用内联函数则始终打包 (其中发生,例如,如果内联已关闭或采用函数地址)。Inline functions are always packaged if they are instantiated as calls (which occurs, for example, if inlining is off or you take a function address). 此外,C++自动打包在类声明中定义的成员函数;其他函数是不是,并选择此选项所需将其编译为封装函数。In addition, C++ member functions defined in the class declaration are automatically packaged; other functions are not, and selecting this option is required to compile them as packaged functions.


/ZI选项,用于编辑并继续,将自动设置 /Gy选项。The /ZI option, used for Edit and Continue, automatically sets the /Gy option.

在 Visual Studio 开发环境中设置此编译器选项To set this compiler option in the Visual Studio development environment

  1. 打开项目的“属性页” 对话框。Open the project's Property Pages dialog box. 有关详细信息,请参阅设置C++Visual Studio 中的编译器和生成属性For details, see Set C++ compiler and build properties in Visual Studio.

  2. 单击 “C/C++” 文件夹。Click the C/C++ folder.

  3. 单击代码生成属性页。Click the Code Generation property page.

  4. 修改启用函数级链接属性。Modify the Enable Function-Level Linking property.

以编程方式设置此编译器选项To set this compiler option programmatically

请参阅See also

MSVC 编译器选项MSVC Compiler Options
MSVC 编译器命令行语法MSVC Compiler Command-Line Syntax