【发布时间】:2017-11-29 06:05:18
【问题描述】:
我正在运行 Visual Studio 2017。我正在尝试将名为 ChaiScript 的脚本语言添加到我的项目中,但是当我打开 /Wall 时它会生成很多警告,并且我还将警告视为错误 (我更喜欢保持这种状态)。
所以我想我会尝试在包含 ChaiScript 头文件时暂时禁用所有警告(只需要包含 1 个文件)。一开始我是这样做的……
#pragma warning( disable : 4061 )
#pragma warning( disable : 4068 )
#pragma warning( disable : 4191 )
#pragma warning( disable : 4355 )
#pragma warning( disable : 4365 )
#pragma warning( disable : 4371 )
#pragma warning( disable : 4464 )
#pragma warning( disable : 4514 )
#pragma warning( disable : 4571 )
#pragma warning( disable : 4623 )
#pragma warning( disable : 4625 )
#pragma warning( disable : 4626 )
#pragma warning( disable : 4668 )
#pragma warning( disable : 4710 )
#pragma warning( disable : 4774 )
#pragma warning( disable : 4820 )
#pragma warning( disable : 5026 )
#pragma warning( disable : 5027 )
#include <chaiscript\chaiscript.hpp>
这行得通,我可以编译......但是,我想在编译过程的其余部分重新启用这些警告......所以我把它变成了这个......
#pragma warning( push )
#pragma warning( disable : 4061 )
#pragma warning( disable : 4068 )
#pragma warning( disable : 4191 )
#pragma warning( disable : 4355 )
#pragma warning( disable : 4365 )
#pragma warning( disable : 4371 )
#pragma warning( disable : 4464 )
#pragma warning( disable : 4514 )
#pragma warning( disable : 4571 )
#pragma warning( disable : 4623 )
#pragma warning( disable : 4625 )
#pragma warning( disable : 4626 )
#pragma warning( disable : 4668 )
#pragma warning( disable : 4710 )
#pragma warning( disable : 4774 )
#pragma warning( disable : 4820 )
#pragma warning( disable : 5026 )
#pragma warning( disable : 5027 )
#include <chaiscript\chaiscript.hpp>
#pragma warning( pop )
现在我认为这会成功,因此它会在没有警告的情况下编译标头,然后返回检查这些警告......但似乎在我这样做之后......我仍然收到 4 个 C4710 警告。 .. 我是不是做错了什么?
【问题讨论】:
-
还有其他领域包含 chaiscript 吗?我假设您在开始尝试包含 chaiscript 之前没有警告?
-
从字面上看,我的程序只是一个带有上述代码的空 .h 文件,然后是一个包含该 .h 文件的 .cpp。我只是设法将错误减少到 4 个警告,更新了我的帖子。所以不,没有。
-
如果内联发生在链接时,链接器选择如何解释
#pragma warning可能是不直观的。例如,在您的源文件(包括这个头文件)被编译之后,链接就很好了。当时#pragma warning( pop )已经找到并编译。虽然我不确定 VS 何时选择执行内联。 -
我想我已经得出结论,这可能是一个 VS2017 错误...如果我在 C4710 推送之外禁用了它,它可以工作...
标签: c++ visual-studio-2017 pragma chaiscript