2013-10-20 19 views
1

我按照這裏的指示:http://lpsolve.sourceforge.net/5.5/PHP.htm#Compile_the_lpsolve_driver並從這裏下載源:http://sourceforge.net/projects/lpsolve/但是,當我從源的目錄中鍵入phpize我收到此消息:Cannot find config.m4. Make sure that you run '/opt/local/bin/phpize' in the top level source directory of the module.我不知道我做錯了什麼。在lpsolve的源目錄中,我沒有看到config.m4(遞歸)的任何地方。你如何編譯lp_solve到macports php 5.4.2?

回答

1

GOT IT。

我已經發布了以下步驟來讓它工作。它看起來很長,但並沒有那麼糟糕。

這三個網站有助於解決該問題。

For building the correct library

For malloc error when using make

For function_entry error when using make

下載: lp_solve_5.5.2.0_source.tarlp_solve_5.5.2.0_PHP_source.tar

http://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.0/

這些是我採取的步驟來實現它的工作。首先確保你的擴展目錄是正確的。我將其設置回php.ini文件中的默認值(基本上評論爲/opt/local/lib/php54/extensions/no-debug-non-zts-20100525)。我還添加了行extension=phplpsolve55.so。使用$ port unload apache2$ port load apache2重新啓動網絡服務器。

在您的終端中的這一點,如果您運行$ php它應該抱怨無法找到phplpsolve55.so驅動程序。

下載並將lp_solve_5.5_source.tar.gz展開爲名爲lp_solve_5.5的 目錄。

下載並將lp_solve_5.5.2.0_PHP_source.tar展開爲名爲lp_solve_5.5_PHP的 目錄。

1)在源目錄中構建lp_solve庫。

$ cd lp_solve_5.5/lpsolve55 
$ sh ccc.osx 

這會在lpsolve55子目錄兩個新文件:

$ ls liblp* 
liblpsolve55.a  liblpsolve55.dylib 

對我來說,這兩個文件分別位於lpsolve55\bin\osx64

2)安裝lp_solve庫。

如果尚未在lpsolve55目錄中,請將其轉存至此目錄。複製liblpsolve55.aliblpsolve55.dylib/usr/local/lib(你可能需要創建/usr/local/lib第一:$ sudo mkdir -p /usr/local/lib):

$ sudo cp liblpsolve55.a liblpsolve55.dylib /usr/local/lib 

3)測試構建和安裝。

$ cd lp_solve_5.5/demo 

ccc.osx腳本壞了。好消息是版本5.5的 lp_solve修復了早期版本中 版Mac上的「malloc.h」不兼容問題。在Unix/Linux操作系統腳本現在可以在OS X上 耐心等待... 可能需要幾秒鐘時間才能生成「演示」:

$ sh ccc 

在演示的例子問題應該發出任何錯誤,並有 「優秀的數字精度|| * || = 0" :

$ ./demo 

3)構建PHP lpsolve庫

現在進入PHP目錄(lp_solve_5.5_PHP

$ cd lp_solve_5.5_PHP/extra/PHP 
$ phpize 
$ ./configure --enable-maintainer-zts --with-phplpsolve55=PATH TO SOURCE DIRECTORY 

*其中path to source目錄是無論你把lp_solve_5.5 *

然後打開PHPmod.c這應該是當前(lp_solve_5.5_PHP/extra/PHP)目錄,並更改function_entryzend_function_entry

然後打開hash.c這也應該在同一個目錄下,並且改行

#include <malloc.h> 

#if !defined(__APPLE__) 
#include <malloc.h> 
#endif 

** 注我只知道要做到這一點,因爲我在做這些之前跑到我的機器上$ make並抱怨這兩個文件 *

然後做

$ make 
$ cd modules 
$ sudo cp phplpsolve55.so /opt/local/lib/php54/extensions/no-debug-non-zts-20100525/ 

現在運行$ php不應該返回任何錯誤。

重新啓動Apache服務器,擴展應該工作。如果沒有,我會盡我所能幫助。

希望這可以幫助未來的人。

編輯

剛剛更新到小牛和一切工作完全沒有動。我所做的是按照步驟here,完成升級後運行$ xcode-select --install。然後我做了$ sudo port selfupdate最後運行腳本在頁面底部的重新加載我的所有端口:

curl -O https://svn.macports.org/repository/macports/contrib/restore_ports/restore_ports.tcl 
chmod +x restore_ports.tcl 
sudo ./restore_ports.tcl myports.txt 

這項工作完成,我做了$ sudo port load apache2,一切仍然工作。

+0

我不得不將/ extra目錄複製到源目錄中。無論如何,請參閱http://jeyroz.tumblr.com/post/605709794/lpsolve-php中的PHP模塊安裝第1步:非常感謝! – SimonV

1

查看lp_solve_5.5/extra/PHP/看看您是否能在那裏找到config.m4

nabble thread這個日期,但它應該有幫助。

+0

好的我使用這個線程:http://lp-solve.2324885.n4.nabble.com/installing-lpsolve-with-python-2-6-8728.html幫助,現在我得到這個問題:配置:錯誤:無效的phplpsolve55庫,找不到make_lp() – thed0ctor