为iOS构buildGMP

我需要在我正在开发的iphone程序中使用GMP ,但是不知道从哪里开始。 我知道我必须build立一个版本的设备和模拟器的版本,但是这是我所知道的。 我试过四处寻找,但一直都找不到。

有没有人在这里成功地build立GMPiphone ,会照顾指导我通过这个过程?

我看到了构buildiOS的GMP,但它不适合我。 我以为我已经成功地使用它:

./configure CC="/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2" CXX="/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-g++-4.2" CPP="/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 -E" LD="$IOS/usr/bin/ld" CPPFLAGS="-arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -miphoneos-version-min=4.2" AR="$IOS/usr/bin/ar" NM="$IOS/usr/bin/nm" NMEDIT="$IOS/usr/bin/nmedit" LIBTOOL="$IOS/usr/bin/libtool" LIPO="$IOS/usr/bin/lipo" OTOOL="$IOS/usr/bin/otool" RANLIB="$IOS/usr/bin/ranlib" STRIP="$IOS/usr/bin/strip" --disable-shared --enable-static --prefix=$IOS/usr/local --host=none-apple-darwin10

然后进行安装。

/usr/local/lib我有libgmp.a 。 但是当我去编译时,拖到xcode告诉我:

ignoring file /Users/daniel/Desktop/libgmp.a, file was built for archive which is not the architecture being linked (armv7) (我因为某种原因掉在桌面上,然后拖到我的xcode项目中)

这使我疯狂。 谁能帮忙? 请记住,我是一个完整的noob使用这些工具。

假设我得到帮助,我可以做这个工作。 我怎么把它变成一个能在armv6armv7simulator(i386)上工作的框架?

提前致谢。

更新:如果其他人有这个问题,这是我如何解决它。

  1. 首先交叉编译GMP 3次,架构设置为armv6。 armv7和i386。 在构buildarm版本时,将标志-DNO_ASM添加到CPPFLAGS。

  2. findLIPO三个.a文件在一起

  3. 使用gmp.g和gmpgxx.h将.a文件导入XCode。

  4. 完成

正如Robbuild议的那样,我会回答我的问题并接受答案。 我是新来的,所以如果有更简单的办法可以原谅我,那我就是这么做的。

要为iPhone构buildGMP,您必须从命令行三次构build三个库。 构buildarmv6,armv7和i386体系结构。 为了确保xcode没有问题,请确保将-DNO_ASM添加到CPPFLAGS。 一旦你有三个.a文件,把它们合并成一个库。

你现在可以将你用lipo创build的库添加到xcode中,并且包含头文件,现在你已经有了GMP为iphone开发工作。

我希望这有帮助。 我花了几天的时间来试图解决这个问题。

您可能会受到OpenSSL的bash脚本的启发,并将其改编为GMP。 它使用标准的configure脚本,并用perl替代CC和CFLAGS。