2013-10-20 4 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가 표시되지 않습니다.어떻게 macports PHP 5.4.2 향해 lp_solve 컴파일합니까?

답변

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.tar, lp_solve_5.5.2.0_PHP_source.tar

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

이에서 내가 작동하게하기 위해 취한 조치입니다. 먼저 확장 프로그램 디렉토리가 올바른지 확인하십시오. 나는 파일의 기본값 (기본적으로 다시 /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이라는 디렉토리에 lp_solve_5.5_source.tar.gz을 다운로드하고 확장하십시오.

lp_solve_5.5.2.0_PHP_source.tar을 다운로드하여 디렉터리에 lp_solve_5.5_PHP으로 확장하십시오.

1) 소스 디렉토리에 lp_solve 라이브러리를 빌드하십시오. 두 파일이 lpsolve55\bin\osx64

2에있는 한 나를 위해

$ ls liblp* 
liblpsolve55.a  liblpsolve55.dylib 

)을 lp_solve 라이브러리를 설치

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

이것은 lpsolve55 하위 디렉토리에 두 개의 새로운 파일을 만듭니다.

lpsolve55 디렉토리에 없으면 cd로 설정하십시오.liblpsolve55.a 복사 liblpsolve55.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"비 호환성을 수정한다는 것입니다. 유닉스/리눅스 스크립트는 지금은 '데모'를 구축하는 데 몇 초 정도 걸릴 수 있습니다 ... 이 인내심 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 

* SOURCE 디렉토리 경로입니다 당신은 lp_solve_5.5을 넣어 어디든지 * 현재 (lp_solve_5.5_PHP/extra/PHP) 디렉토리에 변경해야하는 PHPmod.c

열기 function_entry

열기 zend_function_entryhash.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을 실행하면 오류가 반환되지 않습니다.

아파치 서버를 다시 시작하면 확장 프로그램이 작동합니다. 그렇지 않으면 나는 최대한 많이 도울 것입니다.

희망이 미래에 누군가를 도와줍니다.

편집

은 그냥 매버릭스로 업데이트 모든 것이 아직 완벽하게 잘 작동합니다. 내가 한 것은 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-td8728.html 이제이 문제가 발생합니다. configure : error : 잘못된 phplpsolve55 라이브러리, make_lp()를 찾을 수 없습니다. – thed0ctor