本人c语言纯萌新一枚,编程环境是vscode+clang+mingw,安装的时候是直接把mingw的文件无冲突合并到LLVM里的,参照:https://www.cnblogs.com/esllovesn/p/10012653.html。
今日在完成c语言老师布置的作业的时候写了以下代码:
#include<stdio.h>
#include<float.h>
int main(void)
{
double dv = 1.0 / 3.0;
float fv = 1.0 / 3.0;
printf("%.4f %.4f\n", dv, fv);
printf("%.12f %.12f\n", dv, fv);
printf("%.16f %.16f\n", dv, fv);
printf("%d %d\n", FLT_DIG, DBL_DIG);
return 0;
}
结果很意外的是,无论是直接插件run code还是F5编译均提示编译失败:
In file included from exercises5.c:2:
In file included from C:\Program Files\LLVM\lib\clang\9.0.0\include\float.h:31:
C:\Program Files\LLVM\x86_64-w64-mingw32\include\float.h:28:15: fatal error: 'float.h' file not found
可是其他编译器似乎并没有这个问题,于是在谷歌娘搜到一个结果,大意为新版本的LLVM和旧版本mingw的float.h不兼容,导致两者无法共同发挥作用,需要把新的float.h合并过来
那么解决方案如下:
将这个网址中的内容全部复制后覆盖到LLVM\x86_64-w64-mingw32\include\下的float.h中,这样mingw中的float.h就和新版本clang的float.h兼容了。
那么现在问题就解决完毕了。 .c文件正确编译并输出了以下内容:
0.3333 0.3333
0.333333333333 0.333333343267
0.3333333333333333 0.3333333432674408
6 15
撒花~ *\(^ ▽ ^)/*
来源:oschina
链接:https://my.oschina.net/u/4398470/blog/4281688