适用于iOS的GMP库

时间:2014-09-15 09:16:55

标签: ios objective-c

我有一个GMP库,用于C ++中的BIG整数计算。 我无法在Xcode for iOS开发中编译相同的内容。 请提供有关如何编译GMP for iOS开发的详细步骤

2 个答案:

答案 0 :(得分:1)

我意识到已经花费了相当长的时间,但是上一个答案中的任何信息都没有为我工作。这就是我的能力,希望这对以后的人有所帮助。

  1. https://gmplib.org/download/snapshot/

  2. 获取gmp快照
  3. 它是.lz格式,需要将其解压缩。如果您使用的是Mac,请使用lzip解压缩,然后使用自制软件brew install lzip

  4. 安装
  5. 一旦它从lzip中解压缩,那么它将是一个.tar文件,查找程序可以为您解决。您将拥有一个gmp文件夹,其中包含一堆文件和其他子文件夹。

您将需要安装Xcode命令行工具。确保已预先安装。

运行此配置行。请注意,您需要在--prefix中放入要存储的目录的路径。

./configure CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fembed-bitcode -arch arm64e --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk" CPPFLAGS="-fembed-bitcode -arch arm64e --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk " --disable-shared --enable-static --host=arm-apple-darwin --disable-assembly --prefix="{ YOUR_PATH_HERE }/GMP_6_1_99/gmp-6.1.99-20200117/gmplib-iphoneos-arm64e"

然后运行(注意与日志文件之前的路径相同)

make -j  &> "{ YOUR_PATH_HERE }/gmp-6.1.99-20200117/gmplib-iphoneos-arm64e-build.log"

make install &> "{ YOUR_PATH_HERE }/gmp-6.1.99-20200117/gmplib-iphoneos-arm64e-install.log"

这些线有两个要点,即平台和体系结构。上面使用了arm64e架构,但是您也可以轻松地为arm64, armv7, armv7s进行构建。另外,您也可以更改平台并为macosx, watchos, iphonesimulator, or appletvos进行构建。要更改平台,您需要找到它在计算机上所处位置的SDK。其他体系结构选项是x86_64 i386,为此,请在终端中键入此内容...

xcrun --sdk iphoneos --show-sdk-path
(replace "iphoneos" with the platform you are looking to use from above)

并替换SDK路径。确保与正确的体系结构匹配,否则将收到错误cannot find compiler

答案 1 :(得分:0)

正如GenieWanted所说,提供更多信息!!!

但是,我在下一步之后成功编译了iOS 7 64位的GMP库:

  

./配置   CC =" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"   CPP =" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang   -E" CPPFLAGS =" -target arm64-apple-darwin -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/   -miphoneos版本分钟= 7.0" --host = aarch64-apple-darwin --disable-assembly --enable-static --disable-shared --prefix = / your-path /

我想指出它只创建了C库,我不认为C ++会有所不同,但我会在今天下午尝试。