Clang stdio,找不到 h 文件
Clang stdio,h file not found
我用 Visual Studio 安装了 clang,然后按照文档中的说明构建了突出显示的项目。
构建成功,但是当我尝试这样做时:
clang -cc1 -analyze -analyzer-checker=core.DivideZero test.c
它说:
test.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
我尝试了很多建议,但没有任何效果。
但是,如果我这样做,它会起作用
clang --analyze text.c
我不知道这是否使用了所有可用的检查器。我需要编写自己的检查器并对其进行测试...
有什么想法吗?
clang --version
的输出
clang version 7.0.0 (trunk 322536)
Target: i686-pc-windows-msvc
Thread model: posix
InstalledDir: C:\path\build\Debug\bin
是的,我有一个想法。删除 -cc1
或 <stdio.h>
。根据 the clang FAQ 这是你的错误。它说得很明确,给出了你的精确例子:
$ clang -cc1 hello.c
hello.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.
继续阅读,它提供了其他替代解决方案以及有用的解释,您当然应该完整阅读,因为阅读我们使用的技术手册是我们作为程序员的工作。
clang -cc1
is the frontend, clang
is the driver. The driver invokes the frontend with options appropriate for your system. To see these options, run:
$ clang -### -c hello.c
Some clang
command line options are driver-only options, some are frontend-only options. Frontend-only options are intended to be used only by clang developers. Users should not run clang -cc1
directly, because -cc1
options are not guaranteed to be stable.
If you want to use a frontend-only option (“a -cc1
option”), for example -ast-dump
, then you need to take the clang -cc1
line generated by the driver and add the option you need. Alternatively, you can run clang -Xclang <option> ...
to force the driver pass <option>
to clang -cc1
.
重点是我的。这应该会给你足够的指导来完成你需要做的事情。
我用 Visual Studio 安装了 clang,然后按照文档中的说明构建了突出显示的项目。
构建成功,但是当我尝试这样做时:
clang -cc1 -analyze -analyzer-checker=core.DivideZero test.c
它说:
test.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
我尝试了很多建议,但没有任何效果。
但是,如果我这样做,它会起作用
clang --analyze text.c
我不知道这是否使用了所有可用的检查器。我需要编写自己的检查器并对其进行测试...
有什么想法吗?
clang --version
clang version 7.0.0 (trunk 322536)
Target: i686-pc-windows-msvc
Thread model: posix
InstalledDir: C:\path\build\Debug\bin
是的,我有一个想法。删除 -cc1
或 <stdio.h>
。根据 the clang FAQ 这是你的错误。它说得很明确,给出了你的精确例子:
$ clang -cc1 hello.c hello.c:1:10: fatal error: 'stdio.h' file not found #include <stdio.h> ^ 1 error generated.
继续阅读,它提供了其他替代解决方案以及有用的解释,您当然应该完整阅读,因为阅读我们使用的技术手册是我们作为程序员的工作。
clang -cc1
is the frontend,clang
is the driver. The driver invokes the frontend with options appropriate for your system. To see these options, run:$ clang -### -c hello.c
Some
clang
command line options are driver-only options, some are frontend-only options. Frontend-only options are intended to be used only by clang developers. Users should not runclang -cc1
directly, because-cc1
options are not guaranteed to be stable.If you want to use a frontend-only option (“a
-cc1
option”), for example-ast-dump
, then you need to take theclang -cc1
line generated by the driver and add the option you need. Alternatively, you can runclang -Xclang <option> ...
to force the driver pass<option>
toclang -cc1
.
重点是我的。这应该会给你足够的指导来完成你需要做的事情。