うまくいけば、簡単な質問です。コマンドラインからclangを使用して、基本的なObjective-Cコンパイルを学ぼうとしています。複雑なプロジェクトでは Xcode の方が優れたソリューションであることは理解しており、近いうちに Xcode に移行する予定ですが、個人的には、ターミナルで手動でコンパイルできれば言語をよりよく理解できると感じています。新しいプロジェクトを開始するよりも、端末でコンパイルするのが面倒です。
問題は、複数のファイルで構成される Objective-C プログラムを (コマンド ラインから) コンパイルするにはどうすればよいかということです。(Kochan の教科書の第 7 章の分数プログラムを、#import "Fraction.h" の両方を含む main.m および Fraction.m ファイルと、Foundation フレームワークをインポートする Fraction.h ファイルを使用して実行しようとしています。)単一のファイルをコンパイルするには、次のようなものを使用します
clang -fobjc-arc main.m -o prog1
しかし、それを入力して main.m 以外のファイルをプロジェクトに含めたい場合、次のようなエラーが発生します。
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
次のように、追加のファイルを引数としてコマンドに追加しようとすると
clang -fobjc-arc main.m Fraction.h Fraction.m -o prog1
それから私は得る
clang: error: cannot specify -o when generating multiple output files
そして、次のように -o 引数を削除すると
clang -fobjc-arc main.m Fraction.h Fraction.m
次に、すべてが基盤フレームワークを参照する巨大なエラーの山を取得し、最終的に「致命的なエラー: 発行されたエラーが多すぎて、現在停止しています」で終了します。
これを行うにはどうすればよいですか? それとも、複数のファイルが関係している場合は、すぐにそれを吸い上げて Xcode を使用する必要がありますか?