如何使用#pragma警告禁用链接器警告?

时间:2019-06-05 09:26:28

标签: c++ c visual-c++ pragma linker-warning

我们可以通过以下方式禁用编译器警告

#pragma warning(disable:4966)

如何使用#pragma指令禁用链接器警告?像这样:

// Disable linker warning LNK4221
#pragma warning(disable:4221)

2 个答案:

答案 0 :(得分:2)

链接器警告不能放在源文件中,因为源文件(.CPP / .C / .H等)用于编译器而不是链接器。编译将从一个或多个文件中生成目标文件(通过一个或多个“翻译单元”)。如果将#prama disable_linker_warning放在某个源文件中-链接器设置应该放在哪个.OBJ文件中(链接的一部分)?

链接器设置是项目的全局-由于已链接.OBJ文件以生成最终的PE映像,因此将应用链接器警告。您可以在项目设置页面中选择链接器警告。

预处理器指令将不会保存,以后会传播到链接器。这可能导致多个路径歧义(由于多个翻译单元)和其他复杂性。这样的链接器功能可能不可靠。

请注意,在VC ++中,当选择单个源文件的属性时,看不到任何“链接器”设置。

enter image description here

答案 1 :(得分:0)

对于当前的MSVC工具集,您不能禁用此警告。

是的,警告确实确实非常有用,但是您可以自由地忽略此警告,尤其是在许多情况下。只要确保您的情况是其中一种情况,然后继续。例如,您确定必须包含引起此警告的编译单元吗?