我在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
答案 0 :(得分:1)
是的,我有个主意。移除-cc1
或<stdio.h>
。根据{{3}},这是你的错误。它明确说明了,给出了一个确切的例子:
$ 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
。
重点是我的。这应该为您提供足够的指导,以满足您的需求。