Clang stdio,找不到文件

时间:2018-01-21 17:20:02

标签: c clang stdio

我在Visual Studio中安装了clang,然后按照文档中的说法构建了突出显示的项目。

enter image description here

构建成功,但是当我尝试这个时:

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

1 个答案:

答案 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

重点是我的。这应该为您提供足够的指导,以满足您的需求。