我有一个GMP库,用于C ++中的BIG整数计算。 我无法在Xcode for iOS开发中编译相同的内容。 请提供有关如何编译GMP for iOS开发的详细步骤
答案 0 :(得分:1)
我意识到已经花费了相当长的时间,但是上一个答案中的任何信息都没有为我工作。这就是我的能力,希望这对以后的人有所帮助。
它是.lz格式,需要将其解压缩。如果您使用的是Mac,请使用lzip解压缩,然后使用自制软件brew install lzip
一旦它从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 ++会有所不同,但我会在今天下午尝试。