ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

Xcode抜きでBlocks構文を使ったプログラムのコンパイルをする

      2016/03/16

とある事情から、Xcode(xcodebuild)抜きでBlocks構文を使ったプログラムのコンパイルをしたいと以前から思っており、でもそんなことをしている人は他におらず、どうやるんだろうなと薄ぼんやりと何年か過ぎていってしまっておりました。

ひょんなきっかけで @splhack さんに質問をする機会を得て「-fblocksを付けるかclangを使う」というアドバイスをもらい試行をしたところ、コンパイルできるところまでこぎつけたので、お礼の意味も込め、エントリを起こしておきます。

Mac App Storeで販売されているXcode4をインストールした環境で試しております。

結論から言うと、「clangでコンパイルする」これに尽きます。

コンパイルするプログラム。Blocksを使ったプログラムです(続きは[MORE]から)

Mac向け

Mac向けバイナリをコンパイルする場合のコマンドライン(シェルスクリプト)。
要するにclangでコンパイルすればOKですね。

iPhone向け

iPhone向けバイナリをコンパイルする場合のコマンドライン(シェルスクリプト)。
clangを使いつつ「-arch armv7 -miphoneos-version-min=x.x」というオプションを立てる必要があります。

x.xの部分は任意のバージョン番号でOKです。

「-arch armv7 -arch armv6」とすると、ユニバーサルバイナリが出来ます。

何でSSHなの? という人には用の無いTIPSですので、この項は気にしないでください。

謝辞

@splhack さんありがとうございました。

また、こちらのページを参考にさせていただきました。ありがとうございます。

MacでClang(ARM用) – uzakadeuのブログ MacでClang(ARM用) - uzakadeuのブログ

 - iPad, iPhone, Jailbreak, OS X ,

dropbox_sale_banner evernote_sale_banner_03