为iOS构buildGMP
我需要在我正在开发的iphone程序中使用GMP
,但是不知道从哪里开始。 我知道我必须build立一个版本的设备和模拟器的版本,但是这是我所知道的。 我试过四处寻找,但一直都找不到。
有没有人在这里成功地build立GMP
的iphone
,会照顾指导我通过这个过程?
我看到了构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使用这些工具。
假设我得到帮助,我可以做这个工作。 我怎么把它变成一个能在armv6
, armv7
和simulator(i386)
上工作的框架?
提前致谢。
担
更新:如果其他人有这个问题,这是我如何解决它。
-
首先交叉编译GMP 3次,架构设置为armv6。 armv7和i386。 在构buildarm版本时,将标志-DNO_ASM添加到CPPFLAGS。
-
findLIPO三个.a文件在一起
-
使用gmp.g和gmpgxx.h将.a文件导入XCode。
-
完成
正如Robbuild议的那样,我会回答我的问题并接受答案。 我是新来的,所以如果有更简单的办法可以原谅我,那我就是这么做的。
要为iPhone构buildGMP,您必须从命令行三次构build三个库。 构buildarmv6,armv7和i386体系结构。 为了确保xcode没有问题,请确保将-DNO_ASM添加到CPPFLAGS。 一旦你有三个.a文件,把它们合并成一个库。
你现在可以将你用lipo创build的库添加到xcode中,并且包含头文件,现在你已经有了GMP为iphone开发工作。
我希望这有帮助。 我花了几天的时间来试图解决这个问题。
您可能会受到OpenSSL的bash脚本的启发,并将其改编为GMP。 它使用标准的configure
脚本,并用perl替代CC和CFLAGS。