首頁 >後端開發 >php教程 >關於robbe在64位元linux編譯安裝問題

關於robbe在64位元linux編譯安裝問題

伊谢尔伦
伊谢尔伦原創
2016-11-29 11:10:121374瀏覽

最近有不少網友回饋了robbe在64bit系統上面的安裝問題.

1. 不知道如何編譯robbe.

2. 編譯了, 但是出現如下錯誤:

lazy symbol binding failed: Sym bolnot found: Sym bol not _friso_new_from_ifile
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/robbe.so
Expected in: flat namespace

這裡給出了一個內部給出了統一的解決方法robbe.so檔, 但是是在32bit的系統上面編譯的, 對於64bit的系統肯定是不行的.

1. 編譯安裝friso:

(1).更改friso的Makefile, FFLAGS = -O2 -Wall改為FFLAGS = -O2 -Wall -fPIC, 也就是加上-fPIC選項.

(2). make

(3). sudo make install

friso即安裝成功、

2. 編譯安裝

friso即安裝成功、

2. 編譯安裝

friso即安裝成功、

2. 編譯安裝

friso即安裝成功、

2. 編譯安裝


friso即安裝成功、

2. 編譯安裝


friso即安裝成功、

2. 編譯安裝

friso即安裝成功、

2. 編譯安裝

cd到robbe的源碼目錄

(1). phpize (如果沒有phpize, 先sudo apt-get install php5-dev來安裝該工具)

(2). .file/configure

(3). 更改Make

這裡是重點, 很多網友就是因為沒有更改這個文件, 才導致找不到friso的函數的錯誤. 在下面的目標中引入friso共享文件, 統一在-o 選項前加上-lfriso 選項, 更改如下:

//Makefile的164行🎜robbe.lo: /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🎜🎜//Makefile的168行🎜./robbe.la: $ ROBBE_SHARED_DEPENDENCIES)🎜$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -lfriso -o $@ -export-dyTRA_CFLAGSion -LDFLAGS) -lfriso -o $@ -export-dy -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_robbe) $(ROBBE_SHARED_LIBADD)🎜🎜//統一在-o 選項前加上-lfriso🎜🎜(4). make makeo. 🎜🎜(6). 在php.ini中加入robbe.so, 記得配置robbe哦!🎜🎜(7). 重啟php宿主環境🎜🎜happy robbe.🎜🎜🎜🎜🎜happy robbe.🎜🎜🎜🎜🎜happy robbe.🎜🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn