gpt4 book ai didi

c - clang 是独立的 C 编译器还是需要 gcc?

转载 作者:可可西里 更新时间:2023-11-01 10:44:28 24 4
gpt4 key购买 nike

我想在 Windows 上使用 clang 来编译 C 代码。

我想知道它是否实际上是一个可以做到这一点的独立编译器,或者它的目标是否有些不同?

我以前用过它,但现在看来它是在任何 gcc 编译器(例如 mingw)之上搭载的。

如果我尝试全新安装 clang 64 位二进制文​​件(并且我隐藏了我的 mingw/gcc 目录),那么它找不到 Hello World 的 stdio.h。这是直接从 bin 目录 (C:\clang\bin) 中运行的。如果我取消隐藏 mingw,它会编译,但是我会得到这样的错误(一个 mingw 编译器在 c:\win 中):

c:\win\bin\ld.exe 找不到 -lgcc_s

考虑到 clang 是一个 438MB 的安装,您会认为它会有自己的包含文件和库文件!我想用 clang 代替 gcc。

那么,我做错了什么? (我也看到了一些关于无法找到 stdio.h 的问题,但它们没有帮助。当然 clang 必须能够自己编译 Hello World?!)

最佳答案

您将编译器与链接器与标准库混淆了。

Clang 是一个功能齐全的独立编译器。但它不提供标准库(包含stdio.h 的库)。传统上,在 Unix 系统上,操作系统必须提供它使用的标准库。但是由于您使用的是 Windows,它不会,并且无论出于何种原因,它都会找到安装了 MingW 的那些。有许多与 Clang 兼容的 C 标准库的免费实现。

最后,ld.exe 是链接器,传统上它也必须由系统提供。有一个链接器,lld ,我相信它是与 Clang 一起开发的,但无论出于何种原因,您下载的版本的打包程序只是选择将 clang 配置为简单地调用 ld

关于c - clang 是独立的 C 编译器还是需要 gcc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447465/

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