Tag: 编译器警告

如何在与Knowntype属性一起使用的类上使用Obsolete属性时忽略编译器警告

所以我们试图贬低我们现有的一些类,并开始将它们标记为ObsoleteAttribute的废弃,以便它们不再被使用。 预期将KnownType属性与使用Obsolete属性标记的types一起使用并导致编译器警告的事实。 但是,在我们的项目中,我们将警告视为错误,因此忽略警告不是一种select。 有没有一个编译器指令来抑制这个警告? 以下用法会导致编译器警告: ///ProductTemplateDataSet is marked with the Obsolete attribute [KnownType(typeof(ProductTemplateDataSet))] public class EntityCollectionBase : System.Data.DataSet { } 编辑:我明白使用编译器指令来忽略错误,但这个编译器警告没有一个数字。

如何编译没有警告被视为错误?

问题是在Windows上编译好的代码无法在Ubuntu上编译。 每当我得到这个错误: cc1: warnings being treated as errors 现在,这是大代码基础,我不喜欢修复所有的警告。 尽pipe有警告,有什么办法可以成功编译?

C ++强制编译时错误/警告隐式贯穿在交换机中

switch语句可能会超级有用,但会导致程序员忘记break语句的常见错误: switch(val) { case 0: foo(); break; case 1: bar(); // oops case 2: baz(); break; default: roomba(); } 你不会明显得到一个警告,因为有时候明显需要掉头。 良好的编码风格build议评论当你的故事是故意的,但有时是不够的。 我很确定这个问题的答案是否定的,但是:如果你的case确实case (或者将来会提出)能够让编译器抛出一个错误(或者至less是一个警告!)没有至less有一个break; 或者什么东西// fallthru的影响? 有一个使用switch语句的防御性编程选项是很好的。

如何消除模糊的警告?

我有这个警告: 警告3方法'Microsoft.Office.Interop.Word._Application.Quit(ref object,ref object,ref object)'和非方法'Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit'之间的歧义。 使用方法组。 在我的线上 wordApplication.Quit(); 我曾尝试将其replace为: wordApplication.Quit(false); // don't save changes 和 wordApplication.Quit(false, null, null); // no save, no format 但它一直给我这个警告。 这不是一个巨大的问题,因为代码编译完美,function如预期,但我想摆脱警告。 我能做什么?

使用枚举内部types – 编译器警告C4482 C ++

我在我的一个类中使用方法中的完全限定的名称。 但我收到编译器警告说: “警告C4482:非标准扩展使用:在合格的名称中使用枚举'Foo'” 。 在C ++中,我们是否需要使用没有限定名称的枚举? 但海事组织,这看起来很丑。 有什么想法吗?

如何隐藏GCC中的“已定义但未使用”警告?

我有一堆编译时间断言,如: CASSERT(isTrue) or CASSERT2(isTrue, prefix_) 当使用GCC编译时,我得到了许多警告,比如'prefix_LineNumber' defined but not used 。 有没有办法可以隐藏编译时断言的警告? 我没有运气searchGCC文档。 我以为我可能有自动在全球范围内使用同一个macros,但我想不出有任何办法做到这一点。 有没有人知道在GCC中隐藏该警告的方法?

使用LLVM / Clang忽略特定文件中的所有警告

我的iOS项目中有一些文件有一些警告,我想忽略这些警告。 我不想在整个项目中禁用警告(知道如何做),只是一些特定的文件。 那么,有没有办法彻底忽略来自特定文件的所有警告? 我在Xcode 4.2上使用LLVM 3.0和Clang。

如何摆脱Visual Studio中“从未使用”的“某些事件”编译器警告?

例如,我得到这个编译器警告,“ 事件“Company.SomeControl.SearchClick”从不使用。 但是我知道它被使用,因为注释它会抛出20个尝试使用这个事件的XAML页面的新警告! 是什么赋予了? 有摆脱这个警告的伎俩吗?

你如何禁用未使用的variables警告从gcc出来?

我想知道你传递给gcc编译器的什么开关来closures未使用的variables警告? 我得到错误的窗口提升,我不想触摸升压代码: C:\boost_1_52_0/boost/system/error_code.hpp: At global scope: C:\boost_1_52_0/boost/system/error_code.hpp:214:36: error: 'boost::system::posix_category' defined but not used [-Werror=unused-variable] C:\boost_1_52_0/boost/system/error_code.hpp:215:36: error: 'boost::system::errno_ecat' defined but not used [-Werror=unused-variable] C:\boost_1_52_0/boost/system/error_code.hpp:216:36: error: 'boost::system::native_ecat' defined but not used [-Werror=unused-variable] 我试着使用-Wunused-value和-Wno-unused-value但都没有抑制上面的消息。 什么是正确的命令,这里是我的编译线: g++ -g -fno-inline -Wall -Werror -Wextra -Wfloat-equal -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wno-conversion -Wdisabled-optimization -Wredundant-decls -Wunused-value -Wno-deprecated -IC:\\boost_1_52_0 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o […]

覆盖单个文件的编译标志

我想使用全局标志来编译一个项目,这意味着在我指定的顶层CMakeLists.txt文件中: ADD_DEFINITIONS ( -Wall -Weffc++ -pedantic -std=c++0x ) 但是,对于一个子目录中的特定文件(比如说“foo.cpp”),我希望将编译标志切换为不应用-Weffc ++(包含商业库,我无法更改)。 为了简化这个情况,只使用-Wall,我试过了: SET_SOURCE_FILES_PROPERTIES( foo.cpp PROPERTIES COMPILE_FLAGS -Wall ) ADD_EXECUTABLE( foo foo.cpp ) ,没有工作。 我也试过了 SET_PROPERTY( SOURCE foo.cpp PROPERTY COMPILE_FLAGS -Wall ) ADD_EXECUTABLE( foo foo.cpp ) 和 ADD_EXECUTABLE( foo foo.cpp ) SET_TARGET_PROPERTIES( foo PROPERTIES COMPILE_FLAGS -Wall ) ,其中既没有工作。 最后,我尝试删除这个定义: REMOVE_DEFINITIONS( -Weffc++ ) ADD_EXECUTABLE( foo foo.cpp ) ADD_DEFINITIONS( […]