centos上使用gcc编译某程序得到warning:
implicit declaration of function
同时写了一个测试程序用到c++库, 因此使用g++编译。
测试程序无问题。 原程序使用gcc编译得到warning没在意, 使用起来后一直莫名其妙的core掉。 开始以为是其他问题而忽略了该warning。 而该core恰恰是由此warning产生的。
因为用到了 strcasestr, 需要
#define _GNU_SOURCE //这个可能多余、在网上查到的
#define __USE_GNU //这个必需。 见系统的 include/相应的文件下。
#include <string.h> //声明该函数的头文件
__USE_GNU 没有定义该宏时就会产生上述warning、 gcc会core。 定义之后就无问题了。
同时发现gcc中 min也未定义。。

本文探讨了在CentOS上使用GCC编译时遇到的警告问题:隐式声明函数。通过一个具体的案例,详细介绍了如何解决因未定义__USE_GNU宏而导致的编译警告,并进一步解释了此问题如何引发程序崩溃。
1216

被折叠的 条评论
为什么被折叠?



