最近、多くのネチズンが 64 ビット システムでの robbe のインストールに関する問題を報告しています
2 をコンパイルしましたが、次のエラーが発生しました。失敗: シンボルが見つかりません: _friso_new_from_ifile
参照元: /usr/lib/php/extensions/no-debug-non-zts-20090626/robbe.so期待される場所: フラットな名前空間
統合されたソリューションはここにあります:
Robbe は内部的に robbe.so ファイルを 1 つ提供していますが、これは 32 ビット システムでコンパイルされており、64 ビット システムでは動作しません。
1. friso をコンパイルしてインストールします:
(1)。 FFLAGS = -O2 -Wall 変更 FFLAGS = -O2 -Wall -fPIC の場合、つまり -fPIC オプションを追加します
(2)。sudo make install
friso でインストールは成功します。 ,
2. robbe:
cd を robbe のソースコードディレクトリにコンパイルしてインストールします
(1)。phpize がない場合は、まず sudo apt-get install php5-dev を実行してツールをインストールします
(2) )./configure
(3). Makefile を変更します
ここが重要なポイントです。このファイルを変更していないため、次のターゲットに friso 共有ファイルを導入します。 -o オプションの前に -lfriso オプションを追加します。次のように変更します。 //Makefilerobbe.lo の 164 行目: /c/php_ext/robbe/robbe.c
$(LIBTOOL) --mode=compile $( CC) -I. -I/c/php_ext/robbe $( COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /c/php_ext/robbe/robbe.c -lfriso -o robbe.lo
//168行目Makefile
$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -lfriso - o $@ -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_robbe) $(ROBBE_SHARED_LIBADD)
// -lfriso
(4) を追加します。
(5). sudo make install