在 Snow Leopard 10.6 上編譯帶有國際副檔名的 php 5.3.3
我正在嘗試在我的 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.tar.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,以防您在配置/建構嘗試之間沒有清理所有內容。)
希望它有幫助,克里斯