2009-02-03 34 views
6

Tôi đã thử hàng trăm thứ và tôi không thể lấy tập tin .so để giao tiếp với php bằng cách sử dụng swig. Tôi có thể tạo ra các tập tin, sau đó tôi đã phải biên dịch Zend và liên kết với điều đó để làm cho .so nhưng nó giữ seg lỗi trên tải ngay bây giờ.Làm thế nào để sử dụng swig để tạo ra giao diện php cho C++ vậy

Một số người có thể vui lòng hướng dẫn tôi cách sử dụng swig để tạo giao diện PHP cho thư viện C++ không? documentation trên trang web swig không hữu ích.

+0

Tôi đã chuyển sang làm việc với python. không chắc chắn kinh nghiệm tương tự như thế nào nhưng tôi có thể viết những gì tôi đã làm cho điều đó nếu bạn quan tâm. – mabbit

+0

Đọc tài liệu rất khác với php. Tôi không thể tìm ra cách để biên dịch và làm việc. – Lodle

Trả lời

1

This example dường như có nhiều thông tin. Bạn đã thử chưa?

+0

thats one tôi đã cố gắng và couldnt có được nó để làm việc – Lodle

+0

Tôi cũng vậy. Tôi nhận được "Không thể tìm thấy tập tin 'example.i'" sau khi chạy "swig -php example.i". – Volomike

+0

Bạn đã tạo tệp example.i chưa? – Gaius

0

Hi Double kiểm tra quyền của thư mục mà Mã PHP của bạn cư trú. Tôi phải đối mặt với cùng một vấn đề. Trong thực tế tôi đã làm một số tập tin đọc/ghi công cụ quá trong cùng một thư mục và tôi đã phải thiết lập quyền cho dự án php của tôi cho phù hợp, nếu không nó được sử dụng để nói Không có dữ liệu nhận được và khi tôi nhìn thấy trong apache lỗi đăng nhập tôi thấy Segmentation Fault .

Vì vậy, hãy kiểm tra. điều này có thể hữu ích.

Và có tài liệu trong trang Swig vẫn không hữu ích cho nhà phát triển PHP.

0

Tôi đã bị mắc kẹt trong tình huống tương tự nhưng sau đó câu trả lời của Gaius làm rõ rằng tệp example.i phải được tạo trước, nó không chỉ là tham số ưa thích để nói tên của dự án của bạn. Paragraph 2.3.1 of that guide! cho biết tệp example.i này là gì.

/* 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); 
Các vấn đề liên quan