compiler-warnings相关内容
有些人似乎建议您使用 -Wall,但是当我在一个只有 main.cpp 和一些包含的小型测试项目中这样做时,我收到了 5800 条警告,其中大部分在标准标题或 Windows 标题中. 这是预期的行为吗?如何让我的编译警告免费? 这里只是一些阅读乐趣: 1>c:\program files\microsoft visual studio 10.0\vc\include\stdint.
..
lint 产生一些警告,如: foo.c XXX 警告 534:忽略函数 bar() 的返回值 来自 lint 手册 534 忽略函数的返回值 'Symbol'(与位置比较)A返回值的函数是只是为了副作用而调用,因为例如,在一个声明本身或逗号的左侧操作员.尝试:(无效)函数();到调用一个函数并忽略它的返回价值.另见 fvr、fvo 和 fdr§5.5“标志选项"中的标志.
..
在 Microsoft 编译器上,可以使用 #pragma 禁用特定警告,而不会禁用其他警告.如果编译器对“必须完成"的事情发出警告,这是一个非常有用的功能. 此时的 GCC 是否有类似的功能?这似乎是一个足够明显的功能,令人难以想象的是它还没有此功能,但网络上的旧信息表明此功能不存在. 在 GCC 中使用什么? 特别是,我喜欢使用多字符常量,比如“abc".这些有效地评估为基数
..
我想知道您传递给 gcc 编译器的哪个开关可以关闭未使用的变量警告?我在 Windows 上遇到 boost 错误,我不想触及 boost 代码: C:\boost_1_52_0/boost/system/error_code.hpp:在全局范围内:C:\boost_1_52_0/boost/system/error_code.hpp:214:36: 错误:'boost::system::pos
..
以下代码有一个可能未初始化的变量.似乎 gcc 应该生成警告,但不是: $ cat a.cint foo(int b) {一个;如果 (b)一 = 1;返回一个;}$ gcc-4.7 -c -Wall -Wmaybe-uninitialized -o a.o ./a.c$ gcc-4.7 -v使用内置规范.COLLECT_GCC=gcc-4.7COLLECT_LTO_WRAPPER=/usr/l
..
我想启用 -- 字面意思 -- 所有 GCC 的警告.(你会认为这很容易...) 您可能会认为 -Wall 可以解决问题,但事实并非如此!仍然需要-Wextra. 你会认为 -Wextra 可能会成功,但不是!并非所有警告都在此处列出(对于例如,-Wshadow) 是通过这个启用的.我仍然不知道这个列表是否全面. 我如何告诉 GCC 启用(没有 if、and 或 but !)所有
..
与此 MSVC 预处理器代码最接近的 GCC 是什么?> #pragma warning( push )//保存当前警告状态.#pragma warning( disable : 4723 )//C4723:潜在的除以 0//会生成警告 4723 的代码.#pragma warning( pop )//将警告恢复到以前的状态. 我们在通常包含的标头中有代码,我们不想为其生成特定警告.但是,我们
..
在我的 C++ 时代学习过 C 风格强制转换操作符的弊端,起初我很高兴地发现在 Java 5 中 java.lang.Class 已经获得了一个 cast 方法. 我认为我们终于有一种面向对象的方式来处理转换. 原来 Class.cast 与 C++ 中的 static_cast 不同.它更像是reinterpret_cast.它不会在预期的地方生成编译错误,而是会推迟到运行时.这是一
..
我有这个警告: 警告 3 方法“Microsoft.Office.Interop.Word._Application.Quit(ref object, ref object, ref object)"和非方法“Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit"之间的歧义.使用方法组. 在我的线上 wordAppli
..
我已将 Xcode 更新到 7.3,现在我对用于创建随机字符串的函数发出警告. 我尝试使用 for (i in 0 ..NSString {让字母: NSString = "abcdefghijklmno
..
我有一个类公开了一些方法,其实现由内部对象提供. 我使用前向调用在运行时将方法调用分派到内部对象,但 XCode 抱怨,因为它找不到已声明方法的实现. 我在 SO 上发现了一些其他类似的问题,但所有这些问题都通过设计更改得到了解决. 我不想在这里讨论设计,但如果有人对此有任何建议,我有一个 open question on Code Review,更适合这类讨论. 我的问题
..
在 Visual C++ 中,可以使用 #pragma warning (disable: ...).我还发现在 GCC 中你可以 覆盖每个文件编译器标志.我如何为“下一行"或使用 GCC 的代码区域周围的推送/弹出语义执行此操作? 解决方案 看起来这个 可以做到.我无法确定它添加的 GCC 版本,但它是在 2010 年 6 月之前的某个时间. 这是一个例子: #pragma GC
..
我的编译器 (GCC) 给了我警告: 警告:函数的隐式声明 请帮助我理解为什么会出现这种情况. 解决方案 您正在使用编译器尚未看到其声明(“prototype")的函数. 例如: int main(){乐趣(2,“21");/* 编译器没有看到声明.*/返回0;}int fun(int x, char *p){/* ... */} 你需要在 main 之前声明你的函数
..
我经常听到在编译 C 和 C++ 程序时我应该“始终启用编译器警告".为什么这是必要的?我怎么做? 有时我也听说我应该“将警告视为错误".我是不是该?我该怎么做? 解决方案 为什么要启用警告? C 和 C++ 编译器在报告一些常见的程序员错误默认方面是出了名的糟糕,例如: 忘记初始化变量 忘记从函数中返回一个值 printf 和 scanf 系列中的参数与格式字符串不
..
我收到此警告:警告:$a 可能在声明前使用. 对于我的函数: Func test()如果 (IsDeclared("a")) 那么控制台写入($a)别的ConsoleWrite("未声明")万一结束函数全局 $a = "测试"测试() 可以通过使用全局变量作为函数的参数来避免.但我需要这个构造,因为它与我不想每次需要变量时都执行的文件操作相关联. 如何在不生成“可能在声明前使用"-错误
..
Autoconf 的 AC_COMPILE_IFELSE 在不同的编译器(如 Sun 的 C++ 编译器和 IBM 的 xlC 编译器)下为我们错误检测功能.AC_COMPILE_IFELSE 似乎会检查返回值,但有些编译器不会设置它或将其设置为意外值.稍后,我们使用不可用的选项. 在我的非 Autoconf 构建脚本中,我使用 "fatal|error|illegal|unrecogniz
..
我看到某处断言以下列方式与消息一起使用: assert(("message", condition)); 这似乎很好用,只是 gcc 抛出以下警告: 警告:逗号表达式的左侧操作数无效 如何停止警告? 解决方案 使用 -Wno-unused-value 停止警告;(选项 -Wall 包括 -Wunused-value). 我认为更好的是使用另一种方法,例如 assert(co
..
Java 中有效的 @SuppressWarnings 警告名称列表是什么? @SuppressWarnings("") 中 ("") 之间的位. 解决方案 这取决于您的 IDE 或编译器. 这是 Eclipse Galileo 的列表: all 取消所有警告 装箱以抑制与装箱/拆箱操作相关的警告 强制转换以抑制与强制转换操作相关的警告 dep-ann 抑制与已弃用
..
我正在使用 Intellij Idea 10 和 Java 6 JDK Update 7.当我运行 Build -->Rebuild Project 命令,并且 (javac) 编译生成警告,Idea 不会在 Messages 视图中显示什么这些警告.我只看到一个“信息:XX 警告"节点,但无法展开它以查看实际警告.或者我只是在状态栏上看到一条消息“编译成功完成,但出现 XX 警告".对于错误,I
..
当我编译时,javac 输出: 注意:某些输入文件使用或覆盖已弃用的 API.注意:使用 -Xlint:deprecation 重新编译以获取详细信息.` 我希望取消此警告.尝试 -Xlint:none 似乎没有帮助. 解决方案 根据我在文档中的说法,您无法在命令行上执行此操作. 根据javac 文档,-Xlint:none 仅禁用“Java 语言规范未强制要求"的警告.语言规范
..