compiler-warnings相关内容
每当我尝试使用 gets()函数输入字符串时,我的编译器会给我警告,如下所示。如何摆脱这一点。 test.c:27:2:warning:'gets'已弃用(在/ usr处声明) /include/stdio.h:638)[-Wdeprecated-declarations] gets(temp); 解决方案使用 fgets 代替: fgets(temp,si
..
我想使用一些gcc警告开关,这些警告开关在旧的gcc版本中不可用(例如。-Wtype-limits)。 有没有简单的方法检查gcc版本,只添加这些额外的选项,如果使用最近的gcc? 解决方案 我不会说它容易,但是你可以使用GNU make的 shell 函数执行shell命令,比如 gcc --version ,然后使用 ifeq 条件表达式来检查版本号并适当地设置你的 CFLAGS
..
在如何解决序列反转程序中的这种分割错误?。 所以我打算重复“请使用 - Wall flags“评论,但是当我测试代码与警告时,我发现没有警告报告给我很大的惊喜。所以我修剪它(这段代码对于执行的目的没有任何意义,但它说明了我想展示的内容): #include
..
我想摆脱警告。当我使用 gcc -Wall -ansi -o test test.c 编译源代码时$ c> 我回来了 test。 c:函数'main'中: test.c:12:警告:函数隐式声明'getresuid' test.c:14:警告:函数隐式声明'seteuid' 当我使用 -ansi 开关进行编译时 gcc -Wall -
..
我们最近为一个项目启用了 -Wall 。当GCC在4.7或更高版本(或Clang)时启用它,因为我们可以使用 GCC诊断 来管理高架警告的输出。我们希望通过命令行参数来管理它们,而不是通过 来管理它们。 (我们不想污染命令行,或者要求图书馆用户重新发现需要的内容)。 在GCC 4.8和5.1下,我们捕捉到警告在 -Wunused-variable , -Wunused-value , - 的
..
CASSERT(isTrue)或CASSERT2(isTrue,prefix_) 在使用GCC进行编译时,我收到许多警告,例如'prefix_LineNumber'使用。有没有办法隐藏编译时断言的警告?我没有找到GCC文档的运气。我想我可能会在同一个宏中自动使用全局变量,但我想不出有什么办法做到这一点。 有谁知道隐藏的方法在GCC中发出警告? 解决方案 刚刚查
..
在Microsoft编译器上,可以使用#pragma禁用特定警告,而不禁用其他警告。这是一个非常有用的功能,如果编译器警告“必须完成”的事情。 GCC在这一点上是否有类似的功能?这似乎是一个足够明显的功能,它无法想象,它不会有这个功能,但在网络上的旧信息表明这个功能不存在。 什么是在GCC中使用的吗? 具体而言,我喜欢使用多字符常量,如'abc'。这些数据可以有效地评估为基本25
..
#pragma warning(push)//保存当前的警告州。 #pragma警告(禁用:4723)// C4723:潜在的除以0 //代码会产生警告4723. #pragma警告(弹出)//将警告恢复到之前的状态。 我们在通常包含的头文件中有代码,我们不希望产生特定的警告。但是,我们希望包含这些头文件的文件能够继续生成该警告(如果项目启用了该警告)。 从4
..
因此,我正在写 doctest 库,它应该是免费的警告。 我最近注意到,如果语句没有警告,进入的代码在写入 CHECK() macro。 例如: if(0u == 0)不会导致警告,但 CHECK(0u == 0); 不会。 部分原因是在 CHECK()宏后面有模板和表达式分解和通过const引用捕获。 我的问题是3: 给出这3个片段 - 为什么会发生这种情况?
..
示例: $ g ++有一个奇怪的g ++行为,它显示一个关于无法识别的命令行选项的警告。 b $ b struct Foo {virtual int bar()= 0;}; struct Bar:public Foo {int bar(){return 0;}}; int main(){} 用 g ++ - 5 -Wsuggest-override -Wno
..
当我在Eclipse CDT Indigo和g ++(Debian 4.9.2-10)4.9.2下编译我的项目时,我有很多警告。从这里,可能会解释一些Eclipse解析器错误,可能还有一些外部库bug。 当然我会升级Eclipse,但现在不能。 压制这些繁琐的警告。我阅读手册此处,但我仍然看不到以确定要设置哪些选项。我没有选中Eclipse中的 -Wall 选项,但没有任何更改。所有E
..
我正在使用mingw-w64。我包括 strsafe.h ,并得到以下警告: 警告:内联函数'HRESULT StringCchPrintfA(STRSAFE_LPSTR,size_t,STRS AFE_LPCSTR,...)'使用但未定义[默认情况下启用] 我使用的唯一标志标志是 -Wall -DDEBUG -g 。我知道你必须在同一个头文件中定义内联函数,并且我看了
..
考虑以下代码 strange.cpp : #包括 使用namespace std; int i = 0; int * bar() { ++ i; return& i; int main() { for(size_t j = 0; j { const auto p = bar(); if(!p)//(**)
..
像许多人一样,我用大量的警告标志来构建我的项目。 由于并非所有警告标志都是有害的,汇编变得很嘈杂。 诸如“未使用的变量”,“初始化列表中的遮蔽成员”,“缺少开关默认值”等警告对于日志都很重要,但是在构建期间它们会造成太多混乱,并且很难发现重要的警告。 给定一个大型项目,可能会有成千上万的警告与构建语句混合在一起,而解析虽然后来变得繁重。在代码中维护编译器pragma和push /
..
我的g ++ - 4.5打印: 我想知道是否可以在Qt-Creator中禁止编译器特定的警告。 警告:条件表达式中的枚举类型和非枚举类型 因为它非常烦人。 Ubuntu 11.04 x64 g ++ - 4.5 QtCreator 2.01 Qt 4.7 谢谢! 解决方案 您需要使用这个: QMAKE_CXXFLAGS + = -Wno-enum-co
..
我的任务是改变HPC应用程序部件的精度,同时铭记它严重依赖于自动矢量化。因此,编译器告诉我何时发生任何类型的浮点转换转换(因为这可能会对性能造成严重影响)。 $ b -Wconversion 标志听起来像它应该适合我的需要: Wconversion 警告不同类型之间的隐式转换。 https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gfortra
..
我将 Xcode 更新为7.3,现在我对用于创建随机字符串的函数发出警告。 我试图用来替换语句中的(我在0 ..然而,警告成了一个错误。 我怎样才能删除警告? static func randomStringWithLength(len:Int) - > NSString { let letters:NSString =“abcdefghij
..
在阅读关于未定义行为和序列点的此答案后,我写了一个小程序: #include int main(void){ int i = 5; i =(i,++ i,1)+ 1; printf(“%d\\\ ”,i); return 0; } 输出是 2 。哦,天啊,我看不到减量来了!这里发生了什么? 另外,在编译上述代码时,我收
..
(defmacro foomacro( `(defun foo(& optional arg) (interactive,(concat shiftcode“p”)) (message“arg is%i”arg)) '(defun bar(& optional arg) (interactive,(concat shiftcode“Nenter a number:”)) (message“ar
..
在命令行运行时,如何使用Eclipse Java编译器(ECJ)3.6.2 * 将警告视为错误 ? 较新版本(至少3.8.2)具有 -err:all 标志,但是这是不可用于3.6.2。我有其他选择吗? 我发现了这个问题( Javac:将警告视为错误 ),它建议使用未记录的 -Werror 标志,但只是似乎为了工作javac。 注意:由于各种原因完全无法控制,我必须使用ECJ 3.
..