3

Xcode 5.02 で Mac OSX 用の luajit ライブラリ (静的リンクの方法) を使用するプログラムをコンパイルしています。

luajit のランタイム メモリ メカニズムにより、Mac OSX 用の x86_64 ビルドでリンク オプション "-pagezero_size 10000 -image_base 100000000" を追加する必要があります。そうしないと、関数 luaL_newstate() が NULL を返すため、初期化時にクラッシュします。

(クラッシュが発生した理由に関する詳細な技術情報については、この質問投稿のメイン トピックではないため、この URL を参照してください: http://www.freelists.org/post/luajit/luaL-newstate-fails-on-64bit- Mac-cant-set-linker-flags,2 )

しかし、i386 ビルドの場合、このリンク オプションは必要なく、実際には無効です。これは、イメージ ベースが 32 ビット バウンドを超えているためです。

したがって、現在の状況では、単一のアーキテクチャでプログラムを正常にビルドできます (x86_64 アーキテクチャではリンク オプションを使用し、i386 アーキテクチャではリンク オプションなし)。しかし、ユニバーサル バイナリをビルドする方法がわかりません。ユニバーサル バイナリ ビルド設定で、アーキテクチャごとに個別のリンク オプションを指定する場所。

誰でもこの問題を解決する方法を知っていますか?

ありがとうございました!

4

0 に答える 0