我试图在我的Macbook上为armv7s和iphone模拟器(i386)编译gmp 6.0.0,但我不能让它工作。我阅读了一些相关问题(Build GMP for iOS,Building a C library (GMP) for arm64 iOS)并将其配置为:
./configure \
CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wno-error -Wno-implicit-function-declaration" \
CPP="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -E" \
CPPFLAGS="-arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/ -miphoneos-version-min=7.0" \
--host=arm-apple-darwin --disable-assembly
配置工作正常但在我运行时使其失败并显示:
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
div_qr_1n_pi1.c:218:3: error: expected ')'
add_mssaaaa (u2, u1, u0, u0, up[n-2], p1, p0);
^
div_qr_1n_pi1.c:140:49: note: expanded from macro 'add_mssaaaa'
: "r" (ah), "rI" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
^
div_qr_1n_pi1.c:218:3: note: to match this '('
div_qr_1n_pi1.c:135:11: note: expanded from macro 'add_mssaaaa'
__asm__ ( "adds %2, %5, %6\n\t" \
^
div_qr_1n_pi1.c:256:7: error: expected ')'
add_mssaaaa (u2, u1, u0, u0, up[j], p1, p0);
^
div_qr_1n_pi1.c:140:49: note: expanded from macro 'add_mssaaaa'
: "r" (ah), "rI" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
^
div_qr_1n_pi1.c:256:7: note: to match this '('
div_qr_1n_pi1.c:135:11: note: expanded from macro 'add_mssaaaa'
__asm__ ( "adds %2, %5, %6\n\t" \
^
2 errors generated.
make[2]: *** [div_qr_1n_pi1.lo] Error 1
make[1]: *** [all-recursive] Error 1
我不知道接下来该做什么,如果有人可以给我一个提示下一步尝试的话会很棒。
编辑1:
我下载了最新的快照,添加了-no-integrated-as-cppflags并将clang ++更改为clang。配置仍然运行得很好,我得到错误:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang `test -f 'gen-fac.c' || echo './'`gen-fac.c -o gen-fac
gen-fac.c:31:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
此致
答案 0 :(得分:1)
我终于开始工作了。我重新安装了xcode命令行工具并将其配置为:
./configure \
CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" \
CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/ -Wno-error -Wno-implicit-function-declaration -miphoneos-version-min=7.0 -no-integrated-as -arch armv7s \
--host=arm-apple-darwin --disable-assembly --enable-static --disable-shared"
模拟器(i386)也是如此,并使用lipo合并它们。
这里有3个占位符:
iPhoneOS7.1.sdk
,可以是您当前的SDK。7.0
您尝试编译库的最低版本的操作系统。armv7s
也可以是armv7
,arm64
,i386
。