我试图在我的本地机器上安装xhp,一台运行os x 10.8.2的Macbook pro,又名Mountain Lion(64位)。我已经安装了开发包。
我已经花了很多时间试图让它工作,我想我已经很接近了。但是…我已经通过homebrew安装了所有的依赖项,升级了XCode版本,并安装了XCode命令行工具。
通过研究,我了解到xampp在32位模式下运行,而Mountain Lion(文章中的雪豹,但我猜它在这里是一样的)在64位模式下编译。
这就是我遇到麻烦的地方。我试过用以下方法配置。/configure:
- ./configure
CFLAGS=-m32 CPPFLAGS=-m32 CCASFLAGS=-m32 ./configure
MACOSX_DEPLOYMENT_TARGET=10.8 CFLAGS='- 03 -fno-common -arch i386-arch x86_64' LDFLAGS=' -arch x86_64'CXXFLAGS='- 3 -fno-common -arch i386 -arch x86_64'./configure——with-php-config =/应用程序/XAMPP/xamppfiles/bin/php-config-5.3.1
1)在make
失效。可能是因为32/64位的问题。
2)和3)成功了,但是它破坏了PHP。添加xhp后。所以扩展到PHP .ini,并运行一些任意但有效的PHP代码,我得到以下错误:
http://pastebin.com/80w2sWQN我在Github上发现了同样的问题,但我的makefile与解决方案中的makefile不匹配。
任何想法?
我终于解决了。我认为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'
我不知道上述所有步骤是否都是必要的,但它对我有效。希望这将为其他人节省一些头痛。