【发布时间】:2018-01-21 17:20:01
【问题描述】:
我使用 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
【问题讨论】:
-
您需要在您的 cmd.exe 用户环境中设置您的路径以包含 clang 安装路径,并确保包含搜索路径与
/path/to/clang/include所在的位置匹配。您还应该能够将-I/path/to/clang/include添加到您的clang -cc1 ...命令行(仔细检查clang 是否为此目的使用-I- 或使用提供的选项) -
如何找到“包含搜索路径”?
-
它是一个环境变量,通常由 clang 或 VS 设置(它们每个都有一个默认的查找包含文件的位置)。每个还提供了一个命令行选项来指定在哪里查找它们。您必须查看 clang 安装到的位置(例如
c:\Program Files\clang\...或c:\Program Files(x86)\clang\...以找出安装位置。请参阅 Adding directory to PATH Environment Variable in Windows -
从
InstalledDir: C:\path\build\Debug\bin上面的输出中检查c:\path下的输出(这似乎是一个非常奇怪的安装位置) -
所有编译器都有一种从命令行配置所有内容的方法。另一个答案说的是有道理的。我从来没有使用过 clang,所以我不能告诉你具体是怎么做的,但是所有的编译器或多或少都是一样的。你只需要查阅那里的文档来弄清楚每个人想要什么。