gcc-warning相关内容

包括CMake项目依赖项包括带有-issystem的目录

我正在处理的一个项目链接到Google测试(Gtest)作为依赖项。使用Google测试项目中包含的CMakeList,通过CMake的接口依赖项将Google测试头包含在项目中。 target_link_libraries (our_project gtest gmock) 我们在项目中使用的一些警告标志是在Google测试中打印大量警告--例如,GCC的-Wsuggest-over ..
发布时间:2022-08-26 22:26:09 其他开发

我如何告诉 gcc 在 switch/case 语句上不中断地发出警告(或失败)?

我有一个复杂的 switch 语句,我忘记在其中一个 case 的末尾放置一个 break.这是非常合法的,结果我陷入了下一个case. 如果我忽略了 break 语句,有什么方法可以让 gcc 发出警告(甚至更好,失败)? 我意识到有许多有效的用例(我经常在我的代码中使用它们),例如 this question,所以显然这样的警告(或失败)需要一个简单的弃权,以便我可以轻松地说,“我 ..
发布时间:2022-01-19 11:03:03 C/C++开发

如何规避 GCC 中的格式截断警告?

我收到以下 gcc 格式截断警告: test.c:8:33: 警告:'/input' 指令输出可能会被截断,将 6 个字节写入大小在 1 到 20 之间的区域 [-Wformat-truncation=]snprintf(dst, sizeof(dst), "%s-more", src);^~~~~~test.c:8:3:注意:“snprintf"输出 7 到 26 个字节到大小为 20 的目标 ..
发布时间:2022-01-15 10:35:15 其他开发

在 C 中编译和运行没有 main() 的程序

我正在尝试在 C 中不使用 main() 函数来编译和运行以下程序.我已经使用以下命令编译了我的程序. gcc -nostartfiles nomain.c 编译器给出警告 /usr/bin/ld:警告:找不到入口符号_start;默认为 0000000000400340 好的,没问题.然后,我运行了可执行文件(a.out),两个 printf 语句都打印成功,然后得到 segmentat ..
发布时间:2022-01-12 15:51:44 其他开发

MSVC 相当于 __attribute__ ((warn_unused_result))?

我发现 __attribute__ ((warn_unused_result)) 作为一种鼓励开发人员不要忽略函数返回的错误代码的方法非常有用,但我需要它与 MSVC 一起工作,以及gcc 和 gcc 兼容的编译器,例如 ICC.Microsoft Visual Studio C/C++ 编译器是否具有等效机制?(到目前为止,我已经尝试在 MSDN 中涉水但没有任何运气.) 解决方案 它是 ..
发布时间:2021-12-22 18:39:37 C/C++开发

如何让 gcc 警告将错误的枚举传递给函数

gcc 似乎没有用以下代码产生警告.我怎样才能让它产生警告? typedef 枚举{REG8_A,REG8_B,REG8_C}REG8;类型定义枚举{REG16_A,REG16_B,REG16_C}REG16;空函数(REG8 reg8){}int main(void){功能(REG16_A);//应该警告错误的枚举} 解决方案 这种行为的原因是您使用的是 C 编译器而不是 C++.并且 在 ..
发布时间:2021-12-18 23:02:59 其他开发

警告:内置函数“xyz"的隐式声明不兼容

在编译一些二进制文件时,我收到了许多这样的警告: 警告:内置函数‘strcpy’的隐式声明不兼容警告:内置函数‘strlen’的隐式声明不兼容警告:内置函数‘exit’的隐式声明不兼容 为了解决这个问题,我添加了 #include 在与此警告相关的 C 文件的顶部,除了使用以下标志进行编译外: CFLAGS = -fno-builtin-exit -fno-builtin-strcat ..
发布时间:2021-12-18 22:44:47 其他开发

如何打开(字面意思)所有 GCC 的警告?

我想启用 -- 字面意思 -- 所有 GCC 的警告.(你会认为这很容易...) 您可能会认为 -Wall 可以解决问题,但事实并非如此!仍然需要-Wextra. 你会认为 -Wextra 可能会成功,但不是!并非所有警告都在此处列出(对于例如,-Wshadow) 是通过这个启用的.我仍然不知道这个列表是否全面. 我如何告诉 GCC 启用(没有 if、and 或 but !)所有 ..
发布时间:2021-12-18 22:39:53 C/C++开发

我怎样才能抑制“未使用的参数"?C中的警告?

例如: Bool NullFunc(const struct timespec *when, const char *who){返回真;} 在 C++ 中,我能够在参数周围添加 /*...*/ 注释.但当然不是在 C 中,它给了我错误: 错误:省略了参数名称 解决方案 我通常这样写宏: #define UNUSED(x) (void)(x) 您可以将此宏用于所有未使用的参数. ..
发布时间:2021-12-18 22:31:21 其他开发

如何抑制来自库头文件的 GCC 警告?

我有一个使用 log4cxx、boost 等库的项目,其头文件会生成大量(重复)警告.有没有办法抑制来自库包含的警告(即#include )或来自某些路径的包含?我想像往常一样在项目代码上使用 -Wall 和/或 -Wextra,而不会掩盖相关信息.我目前在 make 输出上使用 grep,但我想要更好的东西. 解决方案 您可以尝试使用 -isystem 而不是 -I 来包含库头文件.这将 ..
发布时间:2021-12-18 22:30:10 其他开发

如何最好地消除有关未使用变量的警告?

我有一个跨平台应用程序,在我的一些函数中,并非所有传递给函数的值都被利用.因此我收到 GCC 的警告,告诉我有未使用的变量. 围绕警告编码的最佳方式是什么? 函数周围的#ifdef? #ifdef _MSC_VERvoid ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, ..
发布时间:2021-12-18 22:27:32 C/C++开发

将二维数组传递给常量参数的函数

我从C Primer Plus 中了解到,如果您想保护数组不被函数意外修改,您应该在指针声明之前添加 const 修饰符函数定义的头部. 遵循这个明智的建议,在下面的最小示例中,我试图将一个非常量二维数组 array 传递给函数 Sum2D,一个参数其中是一个pointer-to-const-int[2]. #include #define 行 2#define COLS 2int Sum ..
发布时间:2021-11-18 01:55:47 其他开发

“警告:在参数列表中声明了‘结构矩阵’[默认启用]";和错误:“scanToken"的类型冲突

我一直在讨论这个问题,试图找出导致这些错误的原因,但到目前为止我一无所获.我有这个功能: struct token scanToken(struct matrix refTable){结构令牌发送;整数计数器 = 0;int currState = refTable.start;而 (1) {printf("%d", currState);char c = getchar();发送缓冲区[计数 ..
发布时间:2021-08-31 19:08:20 其他开发

GCC不再实现< varargs.h>.

我必须将此代码片段从varargs.h更改为stdarg.h,但我不知道确切如何: #ifndef皮棉int ll_log(va_alist)va_dcl{int事件,结果;LLog * lp;va_list ap;va_start(ap);lp = va_arg(ap,LLog *);event = va_arg(ap,int);结果= _ll_log(lp,event,ap);va_end ..
发布时间:2021-05-09 20:58:29 服务器开发