/Fx(合并插入的代码)

为每个源文件生成一个副本,使插入的代码合并到源代码。

语法

/Fx

备注

为了区分合并的源文件与原始源文件, /Fx 将在文件名和文件扩展名之间添加一个 .mrg 扩展名。 例如,一个名为 MyCode.cpp 且包含特性化代码以及由 /Fx 生成的文件可创建一个名为 MyCode.mrg.cpp 且包含以下代码的文件:

//+++ Start Injected Code
[no_injected_text(true)];      // Suppress injected text, it has
                               // already been injected
#pragma warning(disable: 4543) // Suppress warnings about skipping
                               // injected text
#pragma warning(disable: 4199) // Suppress warnings from attribute
                               // providers
//--- End Injected Code

在 .mrg 文件中,由于某一特性而插入的代码将按以下方式进行分隔:

//+++ Start Injected Code
...
//--- End Injected Code

no_injected_text 特性嵌入在 .mrg 文件中,这允许对 .mrg 文件进行编译而无需重新插入文本。

应注意的是,.mrg 源文件用于表示由编译器插入的源代码。 .Mrg 文件可能不能完全像原始源文件一样进行编译或运行。

宏在 .mrg 文件中不展开。

如果程序包含使用插入的代码的头文件,则 /Fx 将为该头生成一个 .mrg.h 文件。 /Fx 不会合并不使用插入的代码的头文件。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“C/C++”>“输出文件”属性页 。

  3. 修改“展开特性化源” 属性。

以编程方式设置此编译器选项

另请参阅

输出文件 (/F) 选项
MSVC 编译器选项
MSVC 编译器命令行语法