0

xhpを自分のローカル マシン、os x 10.8.2、別名 Mountain Lion (64 ビット) を実行している Macbook proにインストールしようとしています。開発パッケージがインストールされたxamppがあります。

私はすでにそれを機能させるために何時間も費やしてきましたが、かなり近いと思います。しかし...自作ですべての依存関係をインストールし、XCodeバージョンをアップグレードし、XCodeコマンドラインツールをインストールしました。

調査の結果、 xamppは 32 ビット モードで実行され、Mountain Lion (記事では Snow Leopard ですが、ここでは同じことを推測しています) は 64 ビット モードでコンパイルされることがわかりました。

これは私がトラブルに遭遇するところです。次の方法で ./configure を試みました。

  1. 。/構成、設定

  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

Githubの問題と同じ問題を見つけましたが、私の makefile は解決策のものと一致しません。

何か案は?

4

1 に答える 1

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'

上記のすべての手順が必要かどうかはわかりませんが、うまくいきました。うまくいけば、これが他の誰かの頭痛の種を救うでしょう。

于 2013-04-29T21:32:35.700 に答える