问题描述
我一直在和Visual Studio作战。我喜欢使用\ WX选项将所有警告视为错误,所以我有一个common.h,它看起来像这样来禁用我不太在意的误报或警告:
#pragma once
#pragma warning(disable : 26812) // The enum type * is unscoped. Prefer 'enum class' over 'enum'.
#ifndef _DEBUG
#pragma warning(disable : 4189) // *: local variable is initialized but not referenced
#pragma warning(disable : 4464) // Relative include path contains '..'
#pragma warning(disable : 4514) // *: unreferenced inline function has been removed
#pragma warning(disable : 4710) // * function not inlined
#pragma warning(disable : 4711) // Function * selected for automatic line expansion
#endif
我将此文件添加到每个.h
文件的顶部。作为额外的预防措施,当我添加任何我不想编辑的外部文件(例如任何库)时,我将包含包含在#pragma warning(push,0)
和#pragma warning(pop)
之间,以确保这些文件中的任何警告都会被忽略,因为我无论如何也无能为力。
我遇到的问题是我包含的库文件(在这种情况下为volk.h
)正在包含另一个文件(volk.c
),并且此文件正在触发警告26812
我通过两种方式禁用了它:
- 明确地,在
common.h
之前随处可见的volk.h
中 - 通过在“警告禁用者”之间包装任何
volk.h
包含内容,可以隐含地
那么,这是怎么回事?为什么此警告仍然存在?有什么好的方法可以在整个警告范围内禁用警告吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)