我正在将Qt使用nlohmann json(https://github.com/nlohmann/json)库(一个json.h文件)。我意识到Qt拥有自己的json功能,因此假设可以使用任何第三方标头。 Qt会产生很多问题/警告,我想尝试仅针对json.h文件抑制问题/警告。
[EDIT]有趣的是json第三方库已从v3.3.0更新到v3.4.0,所有警告均消失了(可能是最好的结果)。尽管如此,能够抑制第三方警告仍然是一件好事。
我尝试了建议here,方法是将.h放在子目录中,并将子目录添加到INCLUDEPATH中。 $$ PWD显然会提供.pro文件的当前目录。但是执行此操作后没有任何变化。
INCLUDEPATH += $$PWD/thirdparty
QMAKE_CXXFLAGS += -isystem $$PWD/thirdparty/
通过以下简单的hello world示例,很容易重现警告:
#include <QCoreApplication>
#include <QDebug>
#include "json.h"
using namespace nlohmann;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "hello world";
return a.exec();
}
[编辑] 仍然希望获得帮助。从评论中,我尝试将包含的内容包装起来,但没有用,如下所示:
#pragma warning(push, 0)
#include "json.h"
#pragma warning(pop)
我正在使用qmake,但认为也许gcc解决方案可能适用,但似乎不适用。
任何帮助将不胜感激。