常见问题解答 (FAQ)¶
驱动程序¶
我运行 clang -cc1 ...
并收到关于缺少头文件的奇怪错误¶
给定此源文件
#include <stdio.h>
int main() {
printf("Hello world\n");
}
如果您运行
$ clang -cc1 hello.c
hello.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.
clang -cc1
是前端,clang
是 驱动程序。驱动程序使用适合您系统的选项调用前端。要查看这些选项,请运行
$ clang -### -c hello.c
一些 clang 命令行选项是仅驱动程序选项,另一些是仅前端选项。仅前端选项仅供 clang 开发人员使用。用户不应直接运行 clang -cc1
,因为 -cc1
选项不能保证稳定。
如果您想使用仅前端选项(“-cc1
选项”),例如 -ast-dump
,则需要获取驱动程序生成的 clang -cc1
行并添加所需的选项。或者,您可以运行 clang -Xclang <option> ...
以强制驱动程序将 <option>
传递给 clang -cc1
。
我收到一些头文件丢失的错误 (stddef.h
, stdarg.h
)¶
一些头文件 (stddef.h
, stdarg.h
等等) 与 Clang 一起提供 - 这些称为内置包含文件。Clang 在相对于 clang
二进制文件位置的目录中搜索它们。如果您移动了 clang
二进制文件,您也需要移动内置头文件。
可以在 内置包含文件 部分找到更多信息。