现在我只想在iOS上使用FFTW3,因为我已经将它成功编译成iOS模拟器使用的i386版本,剩下的工作是将它编译成armv6(或v7)版本和lipo这两个版本在一起,下面是我的错误配置:
./配置 CC = /开发商/平台/ iPhoneOS.platform /开发人员的/ usr /斌/臂-苹果darwin10-GCC-4.2.1 LD = /开发/平台/ iPhoneOS.platform /开发人员的/ usr / bin中/ LD CCFLAGS =“ - 我 /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 ...没有
检查条带...条带
configure:警告:使用不带host triplet前缀的交叉工具
检查线程安全的mkdir -p ... ./install-sh -c -d
检查gawk ...没有
检查mawk ...没有
检查nawk ...没有
检查awk ... awk
检查make是否设置$(MAKE)...是
检查是否启用Makefile的维护者特定部分...否
检查构建系统类型... 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编译器是否正常工作...没有
configure:error:in /Users/chencyz/Desktop/Development/Misc/fftw3/fftw-3.3':
configure: error: C compiler cannot create executables
See
config.log'了解更多详情
我对问题不太清楚(C编译器不起作用?),有人能给我一些指南,非常感谢!
答案 0 :(得分: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
祝你好运。
答案 1 :(得分:0)
在尝试为iOS编译时,我遇到了类似的问题。查看配置脚本,它似乎没有使用$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编译器调用,但是,你的里程可能会有所不同。