私はObjective-C言語を学んでいます。私はMacを持っていないので、Ubuntu 11.04プラットフォーム内で自分のコードをコンパイルして実行しています。問題クランでのObjective Cをコンパイルする(Ubuntuの)
今まで、私はコンパイルにはgccを使用していました。私はGNUStepをインストールして、すべて動作していました。しかし、gccが許さない@propertyや@synthesizeのようなObjective-C 2.0の機能を試し始めました。
は、だから私は、クランとのコードをコンパイルしようとしたが、正しくないとしても、単純なのHello worldプログラムで、GNUstepのライブラリと私のコードをリンクされていないようです。私は次のコードをコンパイルする場合たとえば、:
#import <Foundation/Foundation.h>
int main(void) {
NSLog(@"Hello world!");
return 0;
}
コンパイラの出力を次のとおりです。私はコンパイルするために使用しているコマンドは
clang -I /usr/include/GNUstep/ test.m -o test
/tmp/cc-dHZIp1.o: In function `main':
test.m:(.text+0x1f): undefined reference to `NSLog'
/tmp/cc-dHZIp1.o: In function `.objc_load_function':
test.m:(.text+0x3c): undefined reference to `__objc_exec_class'
collect2: ld returned 1 exit status
clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
ある
GNUstepのライブラリを含むように-Iディレクティブで(そうでない場合は、クランはFoundation.hを見つけることができません)。
私は私の問題をGoogleで検索し、両方のGNUstepとクランWebページを訪問しましたが、私はそれに対する解決策を見つけていないました。だから、どんな助けにも感謝します。
ありがとうございます!
こんにちはURLArenzo:ここではあなたのためにすべてを行いUbuntuのためのスクリプトです。私はすでにそのパッケージをインストールしていて、gccをコンパイルしようとしました(完全に動作していました)。しかし、gccはObjective-C 2.0のいくつかの機能を許可していないことを理解しました。だから私はClangコンパイラで動作させるようにしています。 –