c ++ php и статическая библиотека - PullRequest
2 голосов
/ 30 августа 2011

Я создал library.a, который содержит файлы .cpp и .h с множеством классов, вложенных классов и методов.Я хотел бы включить эту статическую библиотеку в пример php и попытаться поработать с ней.Я хотел бы отметить, что я новичок в php.Я проверил свой libray.a внутри файла test.cpp, и он работает.Как я могу создать test.php и протестировать мой library.a? Если это возможно, пришлите мне несколько примеров.

Я хотел бы отметить, что я работаю в Ubuntu.g ++ был моим компилятором.

Спасибо за советы!Цени!

РЕДАКТИРОВАТЬ: Я хотел бы помнить факт, что я не хочу выставлять мой .CPP кодЯ ПРОСТО ХОЧУ ИСПОЛЬЗОВАТЬ ФАЙЛЫ .H И .A.

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Эта статья может помочь.В нем показано, как создавать расширения PHP с использованием C ++.

1 голос
/ 30 августа 2011

Файл .a не является исполняемой библиотекой.Это статический объектный код.Он не может работать сам по себе.

В PHP нет загрузчиков.Он не может загрузить файл .a, как и ваша собственная операционная система.

Файл .a должен сопровождаться соответствующими заголовками (.h файлы).

Если вы хотите использовать собственный код в PHP, вы должны использовать интерфейсы PHP.Понимаете, как и все, что построено на C / C ++, PHP имеет свое собственное определение того, как выглядит строка (или большинство типов данных).

Короче говоря, у вас есть два варианта:

  • использовать заголовки PHP и связывать ваш код напрямую с PHP
  • использовать библиотечную оболочку, которая соединяет ваши вызовы с PHP
  • превращать вашу библиотеку в исполняемый файл и вызывать ее с помощью PHP *

* PHP имеет множество методов IPC, так что это на самом деле вполне осуществимо.

...