【问题标题】:Compile Ghostscript for iOS 11为 iOS 11 编译 Ghostscript
【发布时间】:2017-12-19 17:46:56
【问题描述】:

我正在尝试为 iOS 11 编译 Ghostscript(版本 9-22)以替换为 iOS 9 及之前版本构建的旧的 32 位版本的库。按照here 的说明,我更改了最后一步,以便给我一个 arm64 动态库:

ar -crs libgs_arm64_release.a obj/*.o

但是,如果我这样做:

lipo -info libgs_arm64_release.a 

它告诉我:

input file libgs_arm64_release.a is not a fat file
Non-fat file: libgs_arm64_release.a is architecture: x86_64

以为我使用了错误的工具,我还尝试使用 XCode 工具链中的 lipo:How to check if a static library is built for 64-bit?,但得到的结果相同,认为它是 x86_64。

关于我为 arm64 架构编译缺少哪一步的想法?

【问题讨论】:

    标签: ios arm ghostscript


    【解决方案1】:

    为了给我一个 arm64 动态库,我修改了最后一步:

    ar -crs libgs_arm64_release.a obj/*.o
    

    ar 只是存档工具,它从编译的目标文件构建一个库。如果你想要一个 ARM 库,你必须在 compile 步骤中通过像-arch armv7 这样的开关来指定它。

    你确定你使用了正确的 Makefile 吗?这些项目似乎有一个用于模拟器(x86)和实际设备(ARM)。

    【讨论】:

    • 是的,就是稍后通过将多个架构组合在一起来创建一个胖二进制文件。现在,我只是在尝试创建正确的 *.a 文件。关于编译步骤的评论,./configure 看起来像: ./configure CC="gcc -arch arm64" --disable-cups --disable-sse2
    • 我正在查看此处的说明:ghostscript.com/doc/9.22/Make.htm#Mac_build 为 Mac OSX 构建 Ghostscript。
    • 这里只是一个警告。据我所知,Apple Store 政策使创建 AGPL 应用程序成为不可能。显然,如果这是一个个人项目,那么这不是问题。但是您不能将 GPL Ghostscript 用于 App Store 中的应用程序。
    • @Perry:对不起,忽略我的回答,应该是评论,因为这只是猜测。
    • 这是一个已获得 Ghostscript 许可的内部商业应用程序。
    猜你喜欢
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 2012-10-19
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多