私はiPhoneにsshを使用し、clangまたはgccを使用してiPhoneでコンソールアプリをコンパイルできます。しかし、どうすればUIKitにリンクできますか? コンパイラがヘッダーを検出し、リンクでスタックします。
clangに渡す引数は何ですか? 必要な静的/共有ライブラリがあるかどうかを確認するにはどうすればよいですか? リンクするファイルは正確には何ですか?
サンプルプログラム:
#import <stdio.h>
#import <UIKit/UIView.h>
int main() {
UIView *U = [UIView alloc];
printf("OK\n");
return 0;
}
コマンドラインとエラーは次のとおりです。
$ clang main.m
Undefined symbols:
"_OBJC_CLASS_$_UIView", referenced from:
__objc_classrefs__DATA@0 in main-2RgCk6.o
"_objc_msgSend", referenced from:
_main in main-2RgCk6.o
ld: symbol(s) not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
追加情報:
$ uname -a
Darwin devphone-teki-iPhone 13.0.0 Darwin Kernel Version 13.0.0: Sun Dec 16 19:58:44 PST 2012; root:xnu-2107.7.55~11/RELEASE_ARM_S5L8940X iPhone4,1 arm N94AP Darwin
$ clang --version
clang version 3.1 (trunk 152547)
Target: arm-apple-darwin13.0.0
Thread model: posix