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>
を削除します。 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
はフロントエンド、clang
はドライバーです。ドライバは、システムに適したオプションを使用してフロントエンドを呼び出します。これらのオプションを表示するには、次を実行します。$ clang -### -c hello.c
一部の
clang
コマンドラインオプションはドライバーのみのオプションであり、一部はフロントエンドのみのオプションです。フロントエンドのみのオプションは、clang開発者のみが使用することを目的としています。clang -cc1
オプションは安定しているとは限らないため、ユーザーは-cc1
を直接実行しないでください。フロントエンドのみのオプション(「
-cc1
オプション」)、たとえば-ast-dump
を使用する場合は、ドライバーによって生成されたclang -cc1
行を取得し、オプションを追加する必要があります。あなたが必要です。または、clang -Xclang <option> ...
を実行して、ドライバーに<option>
をclang -cc1
に強制的に渡すこともできます。
強調は私のものです。これにより、必要なことを実行するための十分なガイダンスが得られます。