Red Hat Linux下MySQL 8.0.26头文件含C++注释致C编译报错,求标准C头文件
问题解答
MySQL 8.0.x系列没有单独提供纯标准C格式的头文件,官方分发的C API头文件(如mysql.h)中确实包含了C++风格的//注释,这会给严格遵循C89标准的编译器带来编译错误。
你可以通过以下几种方式解决这个问题:
- 调整编译参数:如果使用GCC编译,添加
-std=gnu99或-std=gnu89参数(GNU扩展支持C++风格注释);如果编译器强制遵循C89标准,可添加-Wno-comment参数来抑制注释相关的错误提示。 - 预处理过滤注释:编译前用脚本过滤头文件中的C++注释,比如使用
sed命令:
注意:修改系统头文件前建议先备份,避免影响其他程序。sed -i 's/\/\/.*$//' /path/to/mysql/include/mysql/*.h - 切换编译器模式:如果你的代码兼容C99标准,直接用
-std=c99编译,C99标准已经正式支持//单行注释。
内容的提问来源于stack exchange,提问作者BDeGan
相关产品推荐
相关产品推荐

