2012-02-29 15 views
0

Stephen Kochanの書籍を使用してobjective-cとXCodeを学習しています。割り当ての1つとして、私はコマンドラインからアドレス帳検索機能を実装する必要がありました。以前のプロジェクトの2つのクラスを使用してファイルを追加し、コピーを作成しませんでした。すべては、Xcodeで罰金構築しますが、私は、コマンドラインで次のコマンドを発行した場合:clangエラー:リンカコマンドが失敗しました。XCode 4.2コマンドラインアプリケーション

clang -fobjc-arc -framework Foundation main.m -o ch19

私はエラーを取得していない:

 
Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_AddresBook", referenced from: 
     objc-class-ref in cc-bx2cgt.o 
    "_OBJC_CLASS_$_AddressCard", referenced from: 
     objc-class-ref in cc-bx2cgt.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

AddresBookでいかなるタイプミス、私のクラス名は "1を持っています「s」。私はファイルを削除しようとしました(AddresBook.hと.mとAddressCard.hと.m)私のプロジェクトから、コピーして、またはコピーせずに追加します。 Xcodeでアプリケーションをビルドして実行するだけで問題ありません。

リファレンスを「クリア」して再度追加して、コマンドラインからコンパイルできるようにするにはどうすればよいですか?

ありがとうございます。

答えて

2

他のファイルオブジェクトコードを追加する必要があります。

clang -fobjc-arc -framework Foundation main.m AddressBook.m -o ch19のいずれかを指定するか、オブジェクトファイルをコンパイルしてリンクします。

コマンドラインで実行する場合は、xcodebuildも使用する必要があります。

+0

ファイルを追加しましたが、それでも動作しませんでした。コンパイラにそれらのファイルを完全に忘れて、他のものを使用するように指示する方法はありますか(コードは同じです)? – Eugene

+0

コマンドラインからxcodebuildを使用していますか? –

+0

私は今、アドバイスのために+1しています。もし私が "clang ..."ビルドプロセスを修正する他の解決策を得られなければ、私はあなたの答えを受け入れます。どうもありがとう! – Eugene

関連する問題