2

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

./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.平台/开发者/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

当使用它来构建 fftw3 时,我总是得到这个:

检查与 BSD 兼容的安装... /usr/bin/install -c 检查构建环境是否正常... 是 检查 arm-apple-darwin-strip... 不检查 strip... strip 配置:警告:使用不带主机三元组前缀的交叉工具检查线程安全 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 编译器工作...没有配置:错误:在/Users/chencyz/Desktop/Development/Misc/fftw3/fftw-3.3': configure: error: C compiler cannot create executables Seeconfig.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 等的正确更改执行配置。

这似乎有效:

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 编译可爱时,我遇到了类似的问题。查看配置脚本,它似乎没有使用该$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 回答