相关疑难解决方法(0)

如何禁用几行代码的GCC警告

在Visual C++中,可以使用#pragma warning (disable: ...).我还发现在GCC中你可以覆盖每个文件的编译器标志.我怎样才能为"下一行"做这个,或者使用GCC围绕代码区域推送/弹出语义?

c gcc pragma compiler-warnings

200
推荐指数
8
解决办法
12万
查看次数

如何禁用特定包含文件的警告?

我想对特定包含文件直接或间接包含的所有文件禁用特定警告.例如,我想禁用警告"你正在为字符串文字指定一个字符串文字*",包括a所包含的文件所包含的所有文件或文件#include <bar/*>(在我的情况下,明星意味着"任何东西可能在这里").

原因是,我必须编程的一些人不能使用"const",所以最后我得到很多关于特定字符串文字滥用的警告.我想忽略来自他们代码的成千上万的警告,所以我可以专注于我自己的代码中的错误并修复它们.

我使用的是英特尔C++和GCC.我的一些伙伴使用clang,所以我很乐意听到解决方案.

c++ suppress-warnings

68
推荐指数
4
解决办法
3万
查看次数

禁用gcc中的特定警告

在Microsoft编译器上,可以使用#pragma禁用特定警告,而不禁用其他警告.如果编译器警告"必须完成"的事情,这是一个非常有用的功能.

GCC此时是否有类似功能?这似乎是一个显而易见的功能,它无法想象它还没有这个功能,但网上的旧信息表明这个功能不存在.

在GCC中使用什么?

具体来说,我喜欢使用多字符常量,比如'abc'.这些有效地评估为基数256 - 这是一个非常方便的功能,但它会触发警告.它非常便于在case语句中切换四个字符串.

gcc compiler-warnings

37
推荐指数
3
解决办法
4万
查看次数

在特定变量上禁用GCC"可以使用未初始化"

我在堆栈变量上收到此警告:

warning: object.member may be used uninitialized in this function
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我不希望强制初始化只是为了消除警告,因为它消耗CPU周期.变量是POD结构,所以memset它不是零成本.我可以验证变量从未使用过未初始化,所以我只想禁止它的警告.

一般来说,我确实需要警告,而不是在这个特定情况下的特定变量.我怎么能抑制警告?


看起来pragma诊断是正确的方法,但它们需要相当新版本的GCC(4.6)

在该版本之前,没有可接受的解决方案.

c++ gcc compiler-warnings

30
推荐指数
4
解决办法
2万
查看次数

在源代码中部分禁用gcc中的迂腐警告

我试图gcc关闭我对二进制常量的使用.它们使代码更具可读性,但阻止我使用-pedantic我遵守的代码.我想要有一个类似-fnobinaryconstwarn或类似的开关(我认为在阅读手册页一段时间后我认为不存在)或使用

#pragma GCC diagnostic ignored "-pedantic" 
Run Code Online (Sandbox Code Playgroud)

选择性地禁用如此处所述的短暂伸展的迂腐警告:有 选择地仅对部分翻译单元禁用GCC警告? 不幸的是,这似乎不起作用.我有什么选择?

对于 clang

#pragma GCC diagnostic ignored "-Wpedantic"
Run Code Online (Sandbox Code Playgroud)

虽然上面的行没有,但它会产生错误gcc.

c gcc suppress-warnings

13
推荐指数
2
解决办法
4121
查看次数

将GCC选项添加到C源文件的顶部

有可能把东西放在C源文件的顶部,比如

// GCC_OPTIONS=-g,-Wall
Run Code Online (Sandbox Code Playgroud)

每次编译此文件时,这些选项会自动添加到gcc吗?

c gcc compiler-options

11
推荐指数
1
解决办法
4310
查看次数

关闭由升级库引起的警告

我正在使用C++,Mac OS X,Qt和使用boost库构建应用程序.每次我构建一个项目时,我只会从boost库本身获得一个巨大的警告列表.

如何关闭它们,以便我只能看到我的项目特定警告和错误?

c++ macos xcode boost

9
推荐指数
1
解决办法
2727
查看次数

如何临时禁用目标c源文件中的警告?

我工作的一个项目有一个不强制执行警告的构建系统.

但我有一些代码需要警告才能工作.这是一个例子

NSString* title = @"";
if ([view respondsToSelector:@selector(title)]) {
  title = [view title];
}
Run Code Online (Sandbox Code Playgroud)

在一些谷歌搜索之后,我尝试通过包装该代码区来禁用代码块的警告

#pragma warning disable
// my code
#pragma warning restore
Run Code Online (Sandbox Code Playgroud)

没工作:(

有人知道如何在Xcode中执行此操作吗?

任何帮助表示赞赏.

-简历

xcode gcc warnings objective-c

7
推荐指数
2
解决办法
4757
查看次数

C++禁用特定包含的警告

我想知道是否有办法禁用特定文件上的所有警告(例如,使用预处理器指令).

我正在使用CImg.h,我想摆脱涉及该代码的警告.

我正在使用VS(Windows版本)和gcc(Linux版本)进行编译,所以我希望有一个通用的方法......

谢谢!

c++ warnings include

6
推荐指数
1
解决办法
2931
查看次数

我可以得到除字面零以外的所有比较的-Wfloat-equal的行为吗?

我想在构建选项中启用-Wfloat-equal(这是一个GCC标志,当通过==或!=运算符比较两个浮点数时会发出警告)。但是,在我使用的库的几个头文件中,以及我自己的代码的很大一部分中,我经常想使用float或double的非零值进行分支,使用if (x)if (x != 0)或它们的变体。

由于在这些情况下,我绝对可以确定该值完全为零-检查的值是显式零初始化的结果calloc,等等。-我看不出使用此比较的不利之处,而是成本更高且可读性更差调用我的near(x, 0)函数。

是否有某种方法可以-Wfloat-equal对所有其他种类的浮点相等比较产生影响,但允许这些传递不加标记?库头文件中有足够多的实例,它们可以严重污染我的警告输出。

gcc compiler-warnings

5
推荐指数
1
解决办法
1719
查看次数