如何在iOS上编译fftw3

现在我只想在iOS上使用FFTW3,因为我已经成功地将它编译成iOS模拟器使用的i386版本,剩下的工作是编译成armv6(或v7)版本,并将这两个版本一起是我的不正确的configuration:

./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 /开发人员/平台/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 – 禁用,FORTRAN

当使用这个来构buildfftw3时,我总是得到这个:

检查BSD兼容安装… / usr / bin / install -c检查构build环境是否健全…是检查arm-apple-darwin-strip …没有检查strip … stripconfiguration:警告:使用交叉工具没有前缀主机三联检查线程安全的mkdir -p … ./install-sh -c -d检查gawk …没有检查mawk …没有检查nawk .. 。awk检查是否make sets $(MAKE)…是检查是否启用Makefile的特定维护者部分…不检查构build系统types…检查主机系统arm-apple-darwin10键入… arm-apple-darwin检查arm-apple-darwin-gcc … /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1检查是否C编译器工作…没有configuration:错误:在/Users/chencyz/Desktop/Development/Misc/fftw3/fftw-3.3': configure: error: C compiler cannot create executables See config.log'的更多详细信息

我不清楚这个问题(C编译器不工作?),任何人都可以给我一些指南,非常感谢!

根据./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,然后执行configuration,修改PATH,CFLAGS,LDFLAGS等。

这似乎工作:

 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 

祝你好运。

当我尝试为iOS编写可爱编辑器时遇到了类似的问题。 看看configuration脚本,它似乎没有使用$LDFLAGSvariables,但如果它的确如此,我认为你可以添加以下内容到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编译器的调用,但是,你的里程可能会有所不同。