2011年3月16日水曜日
LLVM compiler 2.0 (clang 2.9) で linker にパスを出力させる方法
Xcode 4 から使えるようになった LLVM compiler 2.0 (clang 2.9) の覚え書きです。リンカにパスを出力させる方法を調べてみました。
※ clang 2.8 じゃなくて 2.9 がベースになってるみたいです。ごめんなさい><
方法は簡単。ビルド設定中のOther Linker Flags (OTHER_LDFLAGS) に、
ほいごらんのとおり。
gcc 4.2 または LLVM gcc 4.2 を使っているときは、 gcc がコンパイルして ld でリンクするようになっていましたが、 clang を使うときは clang が一人でコンパイルして一人でリンクまでやってしまいます。そのため、これまで通り普通に
※ clang 2.8 じゃなくて 2.9 がベースになってるみたいです。ごめんなさい><
方法は簡単。ビルド設定中のOther Linker Flags (OTHER_LDFLAGS) に、
-v -Xlinker -vまたは
-v -Wl,-vを与えればOKです。
ほいごらんのとおり。
gcc 4.2 または LLVM gcc 4.2 を使っているときは、 gcc がコンパイルして ld でリンクするようになっていましたが、 clang を使うときは clang が一人でコンパイルして一人でリンクまでやってしまいます。そのため、これまで通り普通に
-vを渡しただけではうまくいきません。これだと、単に clang が verbose モードになるだけですからね。そこで -Xlinker とか -Wl を使ってリンカを verbose モードにすればOKということです。詳細はman clangすべし。