【发布时间】:2023-04-23 07:13:01
【问题描述】:
我需要在我正在开发的 iphone 程序中使用GMP,但我真的不知道从哪里开始。我知道我必须为设备构建一个版本,为模拟器构建一个版本,但我知道的就这么多。我试着环顾四周,但找不到太多东西。
这里有没有人为iphone 成功构建GMP,愿意指导我完成整个过程?
我看到了Building GMP for iOS,但它对我不起作用。 我以为我已经成功构建了它:
./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 项目中)
这让我发疯了。任何人都可以帮忙吗?请记住,我完全是使用这些工具的菜鸟。
假设我得到帮助并且我可以完成这项工作。我如何着手将它变成一个适用于armv6、armv7 和simulator(i386) 的框架?
提前致谢。
丹
更新:如果其他人在这里遇到问题,我是如何解决的。
首先交叉编译 GMP 3 次,将架构设置为 armv6。 armv7 和 i386 分别。在构建 arm 版本时,将标志 -DNO_ASM 添加到 CPPFLAGS。
一起查找 LIPO 三个 .a 文件
使用 gmp.g 和 gmpgxx.h 将 .a 文件导入 XCode。
完成
【问题讨论】:
-
我想通了。我现在有一个适用于模拟器(i386)和设备(armv6 和 armv7)的工作 GMP 库。我想知道我是否可以将 Android 开发的 armv6/7 部分与 NDK 一起使用。现在编写一个客观的 c 包装器,使其与 NSString 配合得很好。
-
您可以(并且应该)发布您自己问题的答案并接受它。