解決vscode+clang+mingw64下的 兼容性問題


本人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

 

 

撒花~ *\(^ ▽ ^)/*


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM