2013-04-29 159 views
0

我試圖在我的本地機器上安裝xhp,這是一臺運行os x 10.8.2的Macbook Pro,又名Mountain Lion(64位)。我已安裝開發包的xampp在Mac OS X上使用xampp構建XHP php擴展

我已經花了好幾個小時試圖讓它開始工作,我覺得我很接近。但是...我已經通過自制軟件安裝了所有依賴項,升級了我的XCode版本並安裝了XCode命令行工具。通過research,我瞭解到xampp運行在32位模式下,而Mountain Lion(文中的Snow Leopard,但我猜這裏是同樣的東西)在64位模式下編譯。

這是我遇到麻煩的地方。我試着運行./configure以下幾種方式:

  1. 的./configure

  2. CFLAGS = -m32 CPPFLAGS = -m32 CCASFLAGS = -m32的./configure

  3. MACOSX_DEPLOYMENT_TARGET = 10.8 CFLAGS =' - O3 -fno-common -arch i386 -arch x86_64'LDFLAGS =' - O3 -arch i386 -arch x86_64' CXXFLAGS =' - O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config =/Applications/XAMPP/xamppfiles/bin/php-config-5.3.1

1)失敗make。可能是因爲32/64位的問題。

2)和3)成功,但它打破了PHP。添加xhp.so擴展爲php.ini,並運行一些隨意的,但是有效的PHP代碼後,我得到以下錯誤:

http://pastebin.com/80w2sWQN

我發現了同樣的問題作爲issue on Github,但我makefile與解決方案中的不匹配。

任何想法?

回答

0

最後我解決了它。我認爲Github問題的解決方案是修改源目錄中的Makefile,而實際上這是xhp/Makefile問題。

解決的辦法是加做如下修改,以XHP/Makefile文件:

變化:

g++ -shared -Wl,-soname,libxhp.so -o libxhp.so $^ 

要:

g++ -m32 -shared -Wl,-arch,i386 -o libxhp.so $^ 

變化:

ifdef DEBUG 
    CPPFLAGS = -fPIC -ggdb -Wall -DDEBUG 
else 
    CPPFLAGS = -fPIC -g -Wall -O3 -minline-all-stringops 
endif 

要:

ifdef DEBUG 
    CPPFLAGS = -fPIC -ggdb -Wall -DDEBUG -arch i386 
else 
    CPPFLAGS = -fPIC -g -Wall -O3 -minline-all-stringops -arch i386 
endif 

然後用參數配置:

./configure --with-php-config=/usr/local/zend/bin/php-config 
--target=i386-apple-darwin10.8.2 --build=i386-apple-darwin 
--host=i386-apple-darwin10.8.2 CFLAGS='-arch i386' LDFLAGS='-arch i386' 
CC='gcc -m32' CXX='g++ -m32' CHOST='i386-apple-darwin10.8.2' 
CPPFLAGS='-arch i386' 

我不知道,如果以上所有步驟都是必要的,但它爲我工作。希望這會爲別人解決一些頭痛問題。