2011-03-30 4 views
1

SWIG 사용법을 배우고 있으며 C 라이브러리 용 PHP 래퍼를 작성하고 있습니다. (%module를 참조하거나 명령 줄에서 전달)으로 인해 모듈의 이름의 불일치로내 C 코드를 PHP 스크립트에 포함하려고합니다.

php: symbol lookup error: /usr/lib/php5/20090626+lfs/fact.so: undefined symbol: fact

+0

코드의 모양은 무엇입니까? 왜 직접 확장 기능을 쓰는 것이 아니라 SWIG를 사용합니까? 자세한 내용은 http://blog.simonholywell.com/post/1156691738/15-excellent-resources-for-php-extension-development (내 블로그)를 참조하십시오. – Treffynnon

+0

복잡한 PHP 프로그램에 포함시켜야하기 때문에 SWIG 사용 방법을 배우려고합니다. 직접 PHP 확장 스크립트를 작성하는 것이 더 효율적이라고 생각하지 않습니다. – user683831

+0

코드는 어디에 있습니까? 이 오류는 모든 종류의 코드 문제로 인해 발생할 수 있습니다. 또는 SWIG 패키지의 관리자에게 문의하는 것도 좋습니다. – Treffynnon

답변

0

귀하의 문제는 아마도 : 확장이 성공적으로 컴파일하지만 내가 함수를 호출하려고 할 때이 오류가 생성중인 .so 파일의 이름.

PHP 나로드 가능한 바이너리 모듈을 허용하는 시스템은로드하려는 라이브러리에 대한 진입 점의 이름에 대해 특정 가정을합니다. PHP는 파일 이름 (fact.so)에 "fact"라는 함수가 포함될 것으로 가정합니다.

SWIG를 실행할 때 명시 적으로 모듈 이름을 "사실"로 설정하면 문제가 해결 될 수 있습니다. 그렇지 않은 경우 생성 된 SWIG 소스 파일을 게시하면 문제를 디버그하는 데 도움이 될 수 있습니다.

관련 문제