Mac

在 Snow Leopard 10.6 上編譯帶有國際副檔名的 php 5.3.3

  • June 8, 2011

我正在嘗試在我的 Mac 上編譯 php。

我遵循了本教程: http: //www.malisphoto.com/tips/php-on-os-x.html

我還查看了這篇文章:Compile PHP 5.3.2 with intl extension on Snow Leopard 10.6.3

這是我的配置選項:

。/配置 \
--前綴=/usr\
--with-apxs2=/usr/sbin/apxs \
--with-ldap=/usr\
--with-kerberos=/usr\
--啟用-cli \
--with-zlib-dir=/usr\
--啟用-exif \
--啟用-ftp \
--啟用mbstring \
--啟用-mbregex \
--啟用套接字\
--with-iodbc=/usr\
--with-curl=/usr\
--with-config-file-path=/etc\
--sysconfdir=/私人/等\
--with-mysql-sock=/tmp\
--with-mysql=/usr/local/mysql\
--with-openssl=/usr\
--with-xmlrpc \
--with-xsl=/usr\
--無梨\
--with-libxml-dir=/usr\
--with-iconv=/usr/local \
--with-pdo-mysql=/usr/local/mysql/bin/mysql_config \
--with-gd \
--with-jpeg-dir=/opt/local \
--with-png-dir=/opt/本地\
--with-freetype-dir=/opt/local \
--with-mcrypt=/選擇/本地\
--啟用國際\
--with-icu-dir=/opt/local

我改變Makefile,替換這個:

$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $( EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp$(PHP_MAJOR_VERSION).so

對此:

$(CC) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $( ZEND_EXTRA_LIBS) $(MH_BUNDLE_FLAGS) -o $@ && cp $@ libs/libphp$(PHP_MAJOR_VERSION).so

我也有這個 -lstdc++ 到 Makefile 中的 EXTRA_LIBS 中。

這是錯誤消息:

在 /opt/local/include/unicode/utypes.h:36 包含的文件中,
來自/usr/local/src/php-5.3.3/ext/intl/grapheme/grapheme.h:21,
來自/usr/local/src/php-5.3.3/ext/intl/php_intl.h:26,
來自 main/internal_functions.c:47:
/opt/local/include/unicode/umachine.h:308:錯誤:重新定義 typedef 'UChar'
/usr/include/libxml2/libxml/encoding.h:41:錯誤:“UChar”的先前聲明在這裡
make: *** [main/internal_functions.lo] 錯誤 1

我嘗試了另一個沒有 intl 的建構(刪除 ./configure 中的最後 2 行),它可以工作。

有人可以向我解釋錯誤消息,或者指出 ./configure 選項中可能有什麼問題嗎? 提前謝謝了

我試圖做同樣的事情,但由於許多相同類型的錯誤而失敗。我試著一一糾正,我又得到了一個!我“降級”到 php 5.2.14 並且沒有更多問題。

或者,再一次,你可以自己從最新的穩定源包建構 libxml2,這就是我所做的,因為回到 5.2 不是一個選項,我幾乎在我的 G4 上手動編譯了所有 php 的依賴項(也是 libicu) dev box: 1) 從http://www.xmlsoft.org/downloads.html獲取 libxml2 最新發布的源碼包 2) 編譯 libxml2: tar xf libxml2-sources-2.7.7.ta​​r.gz cd libxml2-2.7.7 VER =2.7.7 ./configure –enable-shared –enable-static –prefix=/opt/libxml2- $ {VER} make && make install cd /opt; rm -rf libxml2; ln -s libxml2- $ {VER} libxml2 3) 使用 –with-libxml-dir=/opt/libxml2 編譯 php(不要忘記 rm config.cache,以防您在配置/建構嘗試之間沒有清理所有內容。)

希望它有幫助,克里斯

引用自:https://serverfault.com/questions/171869