/QIPF_noPIC(生成依赖于位置的代码)
默认情况下,面向 Itanium 的 Visual C++ 编译器会生成与位置无关的代码。/QIPF_noPIC 将生成具有位置相关代码的映像。
/QIPF_noPIC
备注
说明 |
---|
/QIPF_noPIC 只可用于以 Itanium 为目标的编译器。在以 x64 或 x86 为目标的编译器中,此编译器选项不可用。 |
如果映像无法在其首选地址加载,由于在首选地址之外的其他地址加载映像时,与位置无关的代码中的相对地址不需要进行修正,所以与位置无关的代码比位置相关代码加载得更快。而且,Windows 还允许用户共享未修正过的相同代码,而对于已修正代码,每个用户将获得已修正代码的单独实例。
但是,如果映像无法在首选地址加载,则与位置无关的代码的性能比位置相关代码的性能差。以服务器应用程序为例,其中用户可能并不在乎(可能)启动时间较长,且用户很少同时运行这些应用程序的多个副本,则此应用程序可从位置相关代码所提供的额外性能中受益。
在 Visual Studio 开发环境中设置此编译器选项
- /QIPF_noPIC 在 Visual Studio 开发环境中不可用。
以编程方式设置此编译器选项
- 请参见 AdditionalOptions。