在Mac Leopard 10.5.6上使用GD2和Freetype编译PHP的错误

时间:2009-04-22 05:20:27

标签: php macos gd2 freetype2

我正在Mac OS X 10.5.6上编译PHP5.2.9。需要一些帮助来解决这个问题。

我有PHP编译并使用基本配置,现在我正在尝试使用GD2进行编译。我遇到的问题是,如果我使用Freetype添加参数来构建,我会遇到构建错误。这是演示问题的最小配置。此外,我知道libjpeg / libpng等还有其他要求。我现在不包括那些使这更简单的要求。

sudo ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/conf/php \
--enable-fastcgi \
--with-freetype-dir=/usr/local \
--with-gd 

错误:

checking for FT_New_Face in -lfreetype... no
configure: error: Problem with freetype.(a|so). Please check config.log for more information.

这是来自错误日志:

configure:36779: gcc -o conftest  -gstabs  -no-cpp-precomp -Wl,-rpath,/usr/loca$
Undefined symbols:
  "_FT_New_Face", referenced from:
      _main in ccgzHTP6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
configure: failed program was:
#line 36768 "configure"
#include "confdefs.h"
/*     Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */

我有从源构建的freelib-2.1.3并安装在/ usr / local /,正如我在--with-freetype-dir参数中定义的那样。我想它告诉我它试图找到一个字体文件,但我不确定何时或是否正在安装这样的字体。

如果我在没有Freetype的情况下构建,GD2将构建并安装但我希望在我的系统上具有Freetype功能。以下是我使用Freetype选项的完整配置设置(失败的那个!)

sudo ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/conf/php --enable-fastcgi \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-zlib-dir=/usr/local \
--enable-gd-native-ttf \
--with-tlib=/usr/local \
--with-freetype-dir=/usr/local \
--with-xpm-dir=/usr/X11R6 \
--with-gd 

2 个答案:

答案 0 :(得分:1)

好的,做了一件非常愚蠢的事。我忘记了从哪里下载Freetype2,但是2.1.3版本已经过时了。我刚刚更新到2.3.9并且它非常适合编译。的Bleh。

警告,谷歌搜索者。第一步进行故障排除是为了确保您使用的是最新版本的要求。

答案 1 :(得分:0)

安装包含所需扩展的PHP自定义版本可能是一项挑战。从头开始编译所有内容的替代方法是使用MacPorts,它提供正确的源文件,依赖项并完全自动化configure,make和make install过程。

在MacPorts端口集合中,最新版本的PHP以及几乎所有扩展和工具都存在。当发布新版本的PHP时,它很快就会进入MacPorts,允许非常容易地升级您安装的版本。

如果您进行LAMP / MAMP开发,MacPorts还提供最新的Apache和MySQL服务器版本。