2009-02-03 4 views
6

나는 100 가지를 시도해 본 결과, .so 파일을 swig를 사용하여 PHP와 인터페이스 할 수 없습니다. 파일을 생성 할 수 있습니다. 그런 다음 Zend를 컴파일하고 .so를 만들기 위해 링크해야합니다.하지만로드시 seg 오류가 발생합니다.swig를 사용하여 C++ 용 PHP 인터페이스를 생성하는 방법

swig를 사용하여 C++ 라이브러리 용 PHP 인터페이스를 생성하는 방법을 설명해 줄 수 있습니까? swig 웹 사이트의 documentation은 도움이되지 않습니다.

+0

저는 파이썬으로 작업 할 수있게되었습니다. 얼마나 비슷한 경험인지는 모르겠지만 관심이 있다면 내가 한 일을 쓸 수 있습니다. – mabbit

+0

문서를 읽는 것부터 매우 다른 PHP를 읽는 것까지. 컴파일 및 작업을 수행하는 방법을 알지 못합니다. – Lodle

답변

1

This example 유익한 것 같습니다. 너 해봤 어?

+0

내가 시험해보고 couldnt 한 thats는 일하기 위해 그것을 받는다 – Lodle

+0

나도. "swig -php example.i"를 실행 한 후 "example.i '파일을 찾을 수 없습니다. – Volomike

+0

example.i 파일을 만들었습니까? – Gaius

0

안녕 PHP 코드가있는 폴더의 권한을 두 번 확인하십시오. 나는 똑같은 문제에 직면했다. 사실 같은 디렉토리에있는 파일을 읽고 쓰는 중 일부를하고 있었고 적절하게 PHP 프로젝트에 대한 권한을 설정해야했습니다. 그렇지 않으면 데이터가 수신되지 않았습니다 그리고 아파치 오류 로그에 Segmentation Fault가 표시됩니다 .

그래서 확인해주세요. 이것은 도움이 될 수 있습니다.

그리고 예, Swig 사이트의 문서는 여전히 PHP 개발자에게별로 도움이되지 않습니다.

0

나는 같은 상황에 빠졌지 만 Gaius의 대답에 따르면 example.i 파일이 먼저 만들어 져야한다는 것을 명확히했으며 swig에게 프로젝트의 이름을 알려주는 멋진 매개 변수는 아닙니다. Paragraph 2.3.1 of that guide! 이 example.i 파일이 무엇인지 알려줍니다.

/* File : example.i */ 
%module example 
%{ 
/* Put headers and other declarations here */ 
extern double My_variable; 
extern int fact(int); 
extern int my_mod(int n, int m); 
%} 

extern double My_variable; 
extern int fact(int); 
extern int my_mod(int n, int m); 
관련 문제