1

README の指示に従いました。非常に簡単です。

cd build
cmake ..
make install

この問題は、make install コマンドの後で発生します。モジュール CFFI が原因で、Io はコンパイルされません。ld は、私の libffi.dylib が 64 ビットではないため、.o ファイルをリンクしないと不平を言います。そのため、これまたはそのシンボルが定義されていないなどと不平を言います。

ld: warning: in /opt/local/lib/libffi.dylib, file was built for i386 which is not the architecture being linked (x86_64)

どうすればこれを解決できますか? make、cmake、またはファイルを編集するためにパラメーターを渡すことによって、32 ビットで Io をコンパイルする方法はありますか? Makefile には、CFFI アドオンのエントリがあります。削除してもいいですか?64 ビットの libcffi はどこで入手できますか? このライブラリは、高水準言語の低水準関数呼び出しにアクセスするための API を提供するため、私の 32 ビットのものを 64 ビットのものに置き換えることについては確信が持てず、私の MacRuby やその他のものを壊す可能性があります。CFFI と、私のシステムで動作する可能性のあるすべてのアドオンを使用して、より多くのことを実行できるようにしたいと考えています。目的の C バインディングに興味があります。

4

1 に答える 1

1

Mac では、CMake キャッシュで CMAKE_OSX_ARCHITECTURES = i386 を設定することによってのみ、32 ビットとしてコンパイルできます。

「cmake-gui」を実行します。ビルド ツリーで CMAKE_OSX_ARCHITECTURES を i386 に変更します。次に、クリーン ビルドを実行します。その時点で、最終的に 32 ビット バイナリになるはずです。

他の OS (Linux、Windows) では、64 ビット システムで 32 ビット ビルドを取得するためのさまざまな手法があります。特定のフラグをコンパイラに渡す (gcc の場合は -m32 -m64) か、適切な CMake ジェネレーターを使用する (Visual Studio 9 2008 対 Visual Studio 9 2008 Win64) 必要があります。

于 2011-02-23T04:07:57.127 に答える