2011-11-14 5 views
3

私はcファイルを作成し、これを先頭に追加します。Xcode-目的のCファイルをCファイルにインポートする

#import <GLKit/GLKit.h> 

奇妙なエラーが発生します。これは、目的のCファイルをインポートする場合に当てはまります。私は他の質問/回答でこれについて何も見ていません。誰もが、CとObjective Cが一緒にシームレスに動作することを示唆しているようです。

gl.h 
Unknown type name 'GLenum'; did you mean 'enum'? 

GLKNamedEffect.h 
Expected identifier or '(' 

答えて

6

(つまり、何が偽であると言われている):

#import <GLKit/GLKit.h> 

ファイル内。これを行うと、結果のファイルはObjective-Cファイルになり、Objective-Cコンパイラがコンパイルされている必要があります。したがって、.m拡張子を指定する必要があります。

つまり、Objective-CはCの上に構築された言語です。そのため、Objective-Cコンパイラだけがその構文をコンパイルすることができます。 CコンパイラはObjCについて何も知らないでしょう。

ファイルの拡張子を変更することで、コンパイラを選択することができます。Objective-CヘッダーをインポートしてObjective-Cライブラリを呼び出す「プレーンC」ファイルを作成できます。

+0

Objective-CはCの**スーパーセット**なので、Objective-CファイルでCを使用できますが、必ずしもそうではありません。 – Abizern

+0

OPから - 誰もが、CとObjective Cが一緒にシームレスに動作することを示唆しているようです - 彼らはシームレスではないので、私の多くの省略形の答え – KevinDTimm

+0

答えをありがとう。今は完全に意味があります。 –

1

Cはobjective-cではないため、目的のソースまたはインクルードファイルをインポートできません。あなたはsomething.cからsomething.mにあなたのCファイルの名前を変更する場合は、使用することができるはず