我们如何使用#pragma 警告禁用链接器警告?
How do we disable a linker warning with a #pragma warning?
我们可以使用
禁用编译器警告
#pragma warning(disable:4966)
我们如何使用#pragma 指令禁用链接器警告?类似于:
// Disable linker warning LNK4221
#pragma warning(disable:4221)
您无法使用当前的 MSVC 工具集禁用此警告。
是的,警告确实非常有用,但在很多情况下您可以忽略这一点。只要确保您的情况是其中一种情况,然后继续前进。例如,您确定必须包含导致此警告的编译单元吗?
链接器警告不能放在源文件中,因为源文件(.CPP/.C/.H 等)供编译器使用,而不供链接器使用。编译将从一个或多个文件中生成目标文件(通过一个或多个 "translation units")。如果您将 #prama disable_linker_warning
放在某个源文件中 - 链接器设置应该转到哪个 .OBJ 文件(链接的一部分)?
链接器设置对项目是全局 - 因为.OBJ 文件被链接以生成最终的 PE 映像,然后将应用链接器警告。您可以在项目设置页面中选择链接器警告。
预处理器指令不会被保存并稍后传播到链接器。它可能导致多路径歧义(由于多个翻译单元)和其他复杂性。此类链接器功能可能不可靠。
请注意,在 VC++ 中,当您 select 属性 一个 单个源文件 时,您看不到任何 "Linker"设置。
我们可以使用
禁用编译器警告#pragma warning(disable:4966)
我们如何使用#pragma 指令禁用链接器警告?类似于:
// Disable linker warning LNK4221
#pragma warning(disable:4221)
您无法使用当前的 MSVC 工具集禁用此警告。
是的,警告确实非常有用,但在很多情况下您可以忽略这一点。只要确保您的情况是其中一种情况,然后继续前进。例如,您确定必须包含导致此警告的编译单元吗?
链接器警告不能放在源文件中,因为源文件(.CPP/.C/.H 等)供编译器使用,而不供链接器使用。编译将从一个或多个文件中生成目标文件(通过一个或多个 "translation units")。如果您将 #prama disable_linker_warning
放在某个源文件中 - 链接器设置应该转到哪个 .OBJ 文件(链接的一部分)?
链接器设置对项目是全局 - 因为.OBJ 文件被链接以生成最终的 PE 映像,然后将应用链接器警告。您可以在项目设置页面中选择链接器警告。
预处理器指令不会被保存并稍后传播到链接器。它可能导致多路径歧义(由于多个翻译单元)和其他复杂性。此类链接器功能可能不可靠。
请注意,在 VC++ 中,当您 select 属性 一个 单个源文件 时,您看不到任何 "Linker"设置。