使用 GD 为 iPhone OS 4.1 编译 PHP [关闭]

Posted

技术标签:

【中文标题】使用 GD 为 iPhone OS 4.1 编译 PHP [关闭]【英文标题】:Compile PHP with GD for iPhone OS 4.1 [closed] 【发布时间】:2010-10-22 22:48:06 【问题描述】:

目标:

在第 4 代 iPod Touch 上使用带有 GD 库的 php 工作版本。

状态:

PHP 正在不带 GD 的 iPod (lighttpd + PHP 5.2.8 + sqlite3) 上工作。

尝试在 iPod 上编译 PHP 时出现此错误:http://pastebin.com/kUmgq70G

建议的解决方案:

谁能告诉我如何使用 GD 编译 PHP,然后将其打包为 .deb 文件供其他人使用?


我认为最好的情况是编译包含并启用 GD 库的最新版本的 PHP。第二好的方法是将 GD 编译为一个模块,然后将其安装到 Cydia 提供的当前工作的 PHP 中。但是,要编译 GD,您必须使用用于创建 Cydia 提供的 php_5.2.8-3_iphoneos-arm.deb 的 SAME 源来执行此操作 - 我认为将来每个人都更容易和更安全地编译一个已启用 GD 的全新 PHP,然后将其打包为 .deb


这是我从当前安装的 PHP 版本的 phpinfo 中获得的信息: 系统:

Darwin iPod-Touch 10.3.1 Darwin Kernel Version 10.3.1: Wed Aug 4 22:35:51 PDT 2010; root:xnu-1504.55.33~10/RELEASE_ARM_S5L8930X iPod4,1

构建日期:

Jan 25 2009 02:55:42

配置命令:

'./configure' '--build=x86_64-unknown-linux-gnu' '--host=arm-apple-darwin9' '--enable-static=no' '--enable-shared=yes' '--prefix=/usr' '--localstatedir=/var/cache/php' '--with-iconv=/usr/arm-apple-darwin9/usr' '--with-curl=/home/dat/apl/tel/dest/iphoneos-arm/curl/usr' '--enable-fastcgi'

这是来自 Cydia 的 repo 的包信息:

Package: php
Version: 5.2.8-3
Architecture: iphoneos-arm
Maintainer: Jay Freeman (saurik) <saurik@saurik.com>
Installed-Size: 14492
Depends: curl, libxml2
Filename: debs/php_5.2.8-3_iphoneos-arm.deb
Size: 4626280
MD5sum: dbb30ea608945a5d45de02df74df71b0
Section: Development
Priority: optional
Description: overly popular html templating language
Name: PHP: Hypertext Preprocessor
Tag: purpose::console, role::developer

附:我不是唯一一个从事此工作的人,因为在搜索过程中,我发现了其他几篇与也需要此内容的人有关的帖子。完成此操作后,我会将文件托管在某个地方,以便每个人都可以享受。

【问题讨论】:

你需要一个交叉编译器设置,export CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc。而且它涉及更多,因为您还需要首先交叉编译 GD。没有好的链接,抱歉。 我已经在整个互联网上寻找所谓的工具链 - 显然这是负责“./configure”和“make”命令的小工具......但我无法找到适用于 ios4.1 的任何看起来可靠的东西 目前我正在使用苹果 SDK 获取 Xcode - 也许我可以直接在这个应用程序中构建它。如果是这样的话,以后我会想办法把它打包,目标就完成了。但是我必须将我的操作系统从 10.5 升级到 10.6 :( 首先......所以一旦我完成了,我会更新这个页面。 好的,所以这里有一个小更新 - 我昨晚早上 6:00 从 iPod 编译它自己...唯一的问题是我的环境是从 2.0 头文件和 4.1 一起破解的SDK 中的 header/libs - 加上其他东西可能会造成不稳定的编译环境。我已经编译了 PHP 的所有依赖项,但 PHP 本身编译起来有点麻烦。我不断遇到不同的问题,但在版本中倒退以帮助第一个问题。我不确定为什么。我的 C++ 大学时光是 9 多年前 :P 所以,我已经到了可以在我的第 4 代 iPod 上工作的工具链的地步 - 但我仍然无法让 PHP 一直编译,它一直在某些方面表现不佳错误。我发现提交给 PHP 的一个补丁建议看起来可以解决问题,但我不知道如何手动应用它 - 卡在那里... 【参考方案1】:

从您的输出看来,php 编译正常,但无法链接到 resolv 库。

如果您需要解决方法来获取 PHP 5.2,则需要手动将 -lresolv 添加到链接器标志。

这似乎是使用苹果工具 (http://bugs.php.net/49332) 编译的 PHP 5.2 中的一个错误,该错误已在 PHP 5.3 中修复,因此您可以尝试 5.3 一个,除非您出于某种原因确实需要 5.2 .

【讨论】:

【参考方案2】:

我自己没有尝试过,但 Saurik 存储库应该会有所帮助:

http://svn.telesphoreo.org/trunk/

尤其是这个你可能会感兴趣:

http://svn.telesphoreo.org/trunk/data/php/

Cydia 软件包来自于它,当然感谢 Saurik 的巨大工作!

【讨论】:

【参考方案3】:

这从未发生过。 Saurik 也从未回应过我。所以我放弃了这个项目。

【讨论】:

以上是关于使用 GD 为 iPhone OS 4.1 编译 PHP [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X 自带PHP环境gd库安装扩展freetype(Call to undefined function imagettftext())

linux-4.1的O0编译

linux-4.1的O0编译

关于__IPHONE_OS_VERSION_MAX_ALLOWED和__IPHONE_OS_VERSION_MIN_ALLOWED的用法

哪个条件编译用于在 Mac 和 iPhone 特定代码之间切换?

在Mac OS X Leopard上安装PHP+GD