2009-06-24 2 views
3

PHP 확장을 작성했으며 Linux에서 컴파일하고 실행할 수있었습니다. 그러나 창문에서 나는 몇 가지 문제를 만났습니다.Visual Studio 2008을 사용하여 Windows에서 PHP 확장 기능 컴파일

나는 PHP 소스 버전 5.2.10을 사용하여 http://blog.slickedit.com/?p=128에 따라 창에서 컴파일을 수행하고 컴파일 한 후에는 dll 파일을 생성했습니다. 그러나 dll 파일을 사용하려고 시도했을 때 아파치 (Wamp 서버)를 시작할 때 메모리 문제를보고했다. 그런 다음 디버깅 프로세스를 시작했는데 REGISTER_INI_ENTRIES()에 문제가있는 것처럼 보였습니다.

여기에 PHP 확장 소스 코드 인 http://www.bluefly.cn/xsplit.tar.gz가 있으며, Linux에서 잘 작동합니다. 하지만 Windows에서도 작동하도록하고 싶습니다.

미안하지만 나는 프로가 아니므로 누군가 나를 도울 수 있기를 바랍니다.

은 어떤 도움에 감사드립니다 사전에 감사는 ~

+0

Windows에서 이러한 작업을 수행하기위한 완벽한 가이드가 있습니까? –

+0

죄송합니다. 답변을 얻지 못했지만이 실행을 얻은 경우 얻은 성과와 전반적인 인상에 대한 짧은 의견을 남겨 주시겠습니까? THX를 미리 ... – merkuro

+0

@merkuro, 리눅스에서 잘 작동하며 정말 빠르고 안정적입니다 (시간 테스트). 하지만 난 정말 어떻게 Windows 에서이 작품을 얻을 줄 몰라 –

답변

2

Linux에서 문제가 발생하지 않는 이유는 Windows에서 스레드 안전 빌드를 수행하고 Linux에서는 발생하지 않기 때문입니다. 리눅스에 --enable-maintainer-zts를 추가하려고하고 Valgrind의 (USE_ZEND_ALLOC=0 valgrind /usr/bin/php script.php) 난 당신이 스레드 변수를 초기화하여 php_xsplit_init_globals을 정의하지 않은 것을보고 코드 glanceover 빠른에서

를 사용하여 확인한다. TIS 함수는

ZEND_INIT_MODULE_GLOBALS(xsplit, php_yplist_init_globals, NULL); 

통화를 추가 MINIT로부터 등록해야한다. 어쩌면 뭔가 다른 것이 틀림 없습니다. 그러나 그것이 내가 본 첫 번째 것입니다.

2

WAMP는 VC6을 사용하여 컴파일하고 그것을 VC6로 컴파일 할 모듈이 필요합니다.

보고 Romain Bourdon (WampServer 작성자) 단어 : Apache가 VC6으로 컴파일되었으므로 PHP를 모듈로 실행하려면 (WampServer에서와 같이) VC6으로 모듈을 컴파일해야합니다.

모듈을 최신 플랫폼으로 컴파일하려면 전체 PHP-CGI 배포판을 컴파일하고 (빠른) CGI로 실행해야합니다.

프랑스어를 읽을 수 있으면 (또는 번역기 사용 방법을 알고있는 경우) this post을 읽을 수 있습니다.

관련 문제