2009-02-03 4 views
6

He intentado cientos de cosas y no puedo obtener mi archivo .so para interactuar con php usando swig. Puedo generar los archivos, luego tuve que compilar Zend y vincularlo para hacer el .so, pero ahora mantiene la falla seg en la carga.Cómo usar swig para generar una interfaz php para C++ así que

¿Puede alguien por favor darme una explicación acerca de cómo usar swig para generar una interfaz PHP para una biblioteca en C++? El documentation en el sitio web de swig no es útil.

+0

me han tragado para trabajar con python. no estoy seguro de lo similar que es la experiencia, pero puedo escribir lo que hice para eso si está interesado. – mabbit

+0

De leer los documentos es muy diferente a php. Simplemente no puedo encontrar la manera de hacer que compile y funcione. – Lodle

Respuesta

1

This example parece informativo. ¿Lo has probado?

+0

esa es la que probé y no pude hacer que funcione – Lodle

+0

Yo también. Obtengo "No se puede encontrar el archivo 'example.i'" después de ejecutar "swig -php example.i". – Volomike

+0

¿Creó el archivo example.i? – Gaius

0

Hola Revise los permisos de la carpeta en la que reside su código PHP. Me enfrenté al mismo problema. De hecho, también estaba haciendo algunas cosas de lectura/escritura de archivos en el mismo directorio y tuve que configurar permisos para mi proyecto php, de lo contrario solía decir Sin datos recibidos y cuando veo en el registro de errores de apache veo Falla de segmentación .

Por favor, compruebe. esto puede ayudar.

Y sí, la documentación en el sitio de Swig aún no es de mucha ayuda para los desarrolladores de PHP.

0

Me quedé atrapado en la misma situación, pero luego la respuesta de Gaius aclaró que el archivo example.i debe crearse primero, no es solo un parámetro elegante para decirle a Swim el nombre de su proyecto. Paragraph 2.3.1 of that guide! explica de qué se trata este archivo 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); 
Cuestiones relacionadas