2

今日はiOSでFFTW3を使いたいだけです。iOSシミュレーターで使用されるi386バージョンに正常にコンパイルしたので、残りの作業はそれをarmv6(またはv7)バージョンにコンパイルし、これら2つのバージョンを一緒にリポします。私の間違った設定は次のとおりです。

./configure CC = / Developer / Platforms / iPhoneOS.platform / Developer / usr / bin / arm-apple-darwin10-gcc-4.2.1 LD = / Developer / Platforms / iPhoneOS.platform / Developer / usr / bin / ld CCFLAGS = "-I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/usr/lib/gcc/arm-apple-darwin10/4.2.1/include/ -I/Developer/Platforms/iPhoneOS。 platform / Developer / SDKs / iPhoneOS4.2.sdk / usr / include / -miphoneos-version-min = 2.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk "LDFLAGS = "-arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk" --enable-float --host = arm-apple-darwin --build = arm-apple-darwin10- disable-fortran

これを使用してfftw3をビルドすると、常に次のようになります。

BSD互換のインストールをチェックしています.../usr / bin /install-cビルド環境が正常かどうかをチェックしています...はいarm-apple-darwin-stripをチェックしています...ストリップをチェックしていません...stripconfigure:警告:ホストトリプレットが接頭辞として付いていないクロスツールを使用して、スレッドセーフなmkdir -p ... ./install-sh -c-dgawkをチェックしています...mawkをチェックしていません...nawkをチェックしていません。 .awkのチェックなし...awkがmakeが$(MAKE)を設定するかどうかのチェック...はいMakefileのメンテナ固有の部分を有効にするかどうかのチェック...ビルドシステムタイプのチェックなし...arm-apple-darwin10ホストシステムのチェックタイプ...arm-apple-darwinarm-apple-darwin-gccのチェック.../Developer / Platforms / iPhoneOS.platform / Developer / usr / bin/arm-apple-darwin10-gcc-4.2.1チェックCコンパイラは動作します...詳細についてはconfigure:error:/Users/chencyz/Desktop/Development/Misc/fftw3/fftw-3.3': configure: error: C compiler cannot create executables Seeinconfig.log'を参照してください

私は問題についてあまりはっきりしていません(Cコンパイラは動作しませんか?)、誰かが私にいくつかのガイドを教えてもらえますか、どうもありがとう!

4

2 に答える 2

1

./configure --help によると:

--build=BUILD     configure for building on BUILD [guessed]
--host=HOST       cross-compile to build programs to run on HOST [BUILD]

したがって、重要なのは --host=arm-apple-darwin10 を渡し、PATH、CFLAGS、LDFLAGS などを正しく変更して configure を実行することです。

これはうまくいくようです:

PATH=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:$PATH \
../configure --host=arm-apple-darwin10 CFLAGS="-I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include -I/Library/iPhone/include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk" \
CC=arm-apple-darwin10-gcc-4.2.1 \
CPP=cpp \
LDFLAGS="-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk" \
--enable-single

幸運を。

于 2011-11-03T09:09:09.693 に答える
0

iOS用にかわいいコンパイルをしようとしたときに同様の問題が発生しました。configureスクリプトを見ると、変数を使用していないようですが、使用している場合は、次の行$LDFLAGSを追加できると思います。configure

./configure CC=... CFLAGS="-arch armv7 -isysroot $SDKROOT" CXXFLAGS="$CFLAGS" LDFLAGS="$CFLAGS -Wl,-syslibroot $SDKROOT"

デフォルトではどこに$SDKROOTありますか/Developer/Platforms/iPhone.platform/Developer/SDKs/iPhone5.0.sdk(iOS 5.0 SDKを使用)。

Cコンパイラの呼び出しを修正する方法がわからなかったため、かわいいコンパイルはできませんでしたが、マイレージは異なる場合があります。

于 2011-10-21T15:33:55.420 に答える