OS X

2016-04-07 18 views
0

に「Clang:error:no input files」があります。this solutionに続いて、lexer.mll#include "...frontend/tokens.mll"を使用し、cpp -P frontend/lexer.mll -o frontend/gen/lexer.mllを使用して完全なmllファイルを生成します。このソリューションはUbuntuのもとでは以前から働いていました。OS X

これをMac OS 10.11.1で実行しようとしましたが、エラーclang: error: no input filesが返されます。

gcc -v戻り

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 7.3.0 (clang-703.0.29) 
Target: x86_64-apple-darwin15.0.0 
Thread model: posix 
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

私はXCodeの、またはPCHファイルを使用します。ここで、私は表示されません。誰も私がcppを動作させるために環境をどのように設定すべきか知っていますか?

編集1:

cpp --version戻り

Apple LLVM version 7.3.0 (clang-703.0.29) 
Target: x86_64-apple-darwin15.0.0 
Thread model: posix 
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

コメントから例:

enter image description here

+0

'cpp --version'を実行して、' -v'フラグを付けて実行している 'cpp'の出力を表示して詳細な出力を表示してください。 '.mll'ファイルの内容も表示してください。 – jtbandes

+0

あなたは十分な情報を私たちに与えてくれませんでした。実行しているコマンドを表示する必要があります。なぜなら、表示された 'cpp'コマンドは' clang'をプログラム名として生成しません(少なくとも、私が試してみると明らかにそうではありません。 Apple LLVMバージョン7.3.0(clang-703.0.29) 対象:x86_64-apple-darwin15.4.0'は少し新しいですが、私はそれが変更であるとは思わない)。ファイルごとに1行または2行で十分であるかもしれない最小限のマテリアルと、使用している 'makefile'ルールと' make'の出力を正確に表示する必要があります。 –

+0

また、XcodeやPCHファイルとは何が関係していますか? – jtbandes

答えて

2

私はあなたがやろうとしているものを正しく理解すれば、あなたが実行したいのでファイル上のcプリプロセッサは、別のファイルに格納されるテキスト出力を生成します。私は理由を知りませんが、これを達成するコマンドは次のとおりです。

clang -x c frontend/lexer.mll -E -P -o frontend/gen/lexer.mll 

これはclangを呼び出します。言語をC(-x c)に設定します。あなたのファイルを与える;前処理のみを要求し、コンパイルまたはリンクは要求しない(-E);出力(-P)の行情報はありません。フロントエンド/ gen/lexer.mllに格納します。

Xcodeはclangを実行するIDEです。 ocamlで作業している場合は、ocamlファイルで何をすべきか分からないため、Xcodeを使用すると役立たない場合があります。

+0

これは私のために働く...ありがとう... – SoftTimur

-1

1 - オープンXCodeの

2 -

4 OSX

のタブを選択 - - 新しいXcodeプロジェクト

3作成]を選択したアプリケーションを

5 - コマンドラインツールに

6を選択してください - 次のウィンドウでは、製品を入力する必要がありなど

7名 - 言語として選択しますC++を

+0

これらの手順を実行して、どのようにして 'cpp -P xxx -o yyy'のように動作させることができますか? – SoftTimur

+0

あなたは製品の名前としてex:project.cppを選択する必要があります – scbas

-1

'CPP -P XXX -o YYY' あなたはそれをする必要があります - > 'エコー "blahblahblah.cpp"> XXX'

1

この1つは私のために働くように、それは、打ち鳴らすからバグが考えられます。

$ cpp -P xxx yyy 
$ cat yyy 
from zzz 

$ clang --version 
Apple LLVM version 7.0.2 (clang-700.1.81) 
Target: x86_64-apple-darwin14.5.0 
Thread model: posix