gpt4 book ai didi

c - 如何使用 Clang 和 MinGW C/C++ 库编译代码? (float.h 的特殊问题)

转载 作者:太空狗 更新时间:2023-10-29 16:36:24 25 4
gpt4 key购买 nike

我有一个简单的程序,我可以使用 MinGW 的 C/C++ 库用 clang 成功编译它:

#include <stdio.h>
int main(int argc, char **argv) { printf("Hello world!\n"); return 0; }

我可以用 mingw-gcc 成功编译:

 $ gcc test.c -o test
$ ./test
Hello world!

我也可以使用 clang+mingw 成功编译它:

 $ clang test.c -o test -target
$ ./test
Hello world!

但是,如果我对我的程序进行小改动(包括 float.h),它会继续使用 gcc 进行编译,但不再使用 clang 进行编译:

#include <stdio.h>
#include <float.h>
int main(int argc, char **argv) { printf("Hello world!\n"); return 0; }
 $ gcc test.c -o test
$ ./test
Hello world!

$ clang test.c -o test -target x86_64-pc-windows-gnu
In file included from test.c:2:
In file included from C:\llvm\built\lib\clang\8.0.0\include\float.h:45:
C:\mingw64-8.1.0\x86_64-w64-mingw32\include\float.h:28:15: fatal error: 'float.h' file not found
#include_next <float.h>
^~~~~~~~~
1 error generated.

clang 是否存在配置问题或缺少命令行参数?谷歌搜索了一下,似乎包含 float.h 的路径顺序很重要,但这都应该由 clang 驱动程序在内部处理。

最佳答案

较旧的 MinGW-w64 二进制版本与 Clang 8.0+ 的 float.h 不兼容。要解决此问题,请复制 this specific revision of float.h放入正确的位置并使用它。

关于c - 如何使用 Clang 和 MinGW C/C++ 库编译代码? (float.h 的特殊问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57166340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com