2012-12-06 8 views
13

とを使用して、私は私の$PATHにすべてを追加しましたし、私はこれらの答えに応じて適切な環境変数、[123]を設定するには、私のSConstructを微調整しました。今私は、ビルドが始まるクランのスキャン・構築のsconsおよびC++ 11

scan-build --use-c++=`which clang++` scons 

を実行し、私はsconsによってフォークプロセスは、オブジェクトファイルが正常にビルド

/path/to/c++-analyzer ... -std=c++11 ... 

で見ることができますが、その後、私はエラーを取得する場合:

could not find clang line 

このエラーは、フォークされたプロセスに文字列-cc1が含まれていない場合、c++-analyzerに発生します。私はps auxを確認した場合しかし、私は明らかにプログラムが正常にビルドするが、静的アナライザは次のように失敗する可能性がどのように

/path/to/clang -cc1 ... 

を参照してください?参考のため


私は手動で

scan-build clang++ <parameters from scons> 

を実行する場合は、ビルドが成功するとレポートが生成されます!

私も

env["ENV"]["PATH"] = os.environ["PATH"] 

を追加し、私はそのままSConstructscons自体にscan-buildを実行することはできません

CXX="scan-build clang++" scons 

を実行して、 "ごまかす" ことができます。

+0

あなたの質問は、最初のリンクされた答えで答えられます: "SConsは通常、ビルドを実行する前に環境を整理します(これは機能です)。" –

+0

@インダストリアル - 抗うつ薬私は既にGregが示唆している環境変数を使用しています。私はClangとSConsを介して*構築することができます。 *私は静的アナライザー*を実行することはできません。 – chrisaycock

+0

ええと、scan-buildで試してみる--use-analyzer =/path/to/clang –

答えて

4

問題は、clangがexecution environmentの検索パスにないことです。これは、なぜ行番号env["ENV"]["PATH"] = os.environ["PATH"]を追加することで問題が解決するのかを説明しています。あなたは、例えば、実行環境で使用される検索パスに打ち鳴らすの実行可能ファイル(clang++そしておそらくclang)を置くことができる無修正SConstructscan-buildを実行するには

Linuxの/path/to/clang++/usr/bin/clang++からシンボリックリンクを作成してください。