Как я могу встроить Perl в приложение C ++? - PullRequest
6 голосов
/ 08 сентября 2008

Я хотел бы вызывать файлы сценариев Perl из моей программы на С ++.

Я не уверен, что у людей, которым я буду распространять, будет установлен Perl.

В основном я ищу .lib-файл, который я могу использовать, который имеет лицензию на распространение, подобную Apache.

Ответы [ 3 ]

14 голосов
/ 08 сентября 2008

Вы можете встроить Perl в свое приложение.

6 голосов
/ 08 сентября 2008

Я в настоящее время пишу библиотеку для встраивания Perl в C ++, но она еще не закончена. В любом случае я бы рекомендовал не использовать библиотеку EP. Он не только не эксплуатировался годами, но также имеет некоторые серьезные архитектурные недостатки и довольно ограничен по объему. Если вы заинтересованы в альфа-программном обеспечении, вы можете связаться со мной по этому поводу, в противном случае я бы посоветовал вам использовать raw API .

1 голос
/ 15 сентября 2008

Для вызова Perl из C ++ вам нужно использовать API, как кто-то еще упомянул; базовое руководство доступно в документации perlxstut .

Обратите внимание, что вам, скорее всего, понадобится больше, чем просто ".lib", потому что вам понадобится множество крошечных модулей, которые расположены в каталоге "lib" дистрибутива perl: strict.pm и т. Д. я думаю, это не имеет большого значения; упомянутый вами пример apache имеет те же ограничения на доставку некоторых файлов конфигурации по умолчанию и т. д.

Однако для распространения Perl в Windows (я полагаю, вы работаете в Windows, так как упомянули файл .lib), дистрибутив ActiveState, который используют все, может вызвать головную боль при лицензировании. Это не совсем понятно для меня, но кажется, что вы не можете распространять ActivePerl в коммерческом продукте. Обратите внимание, что если вы хотите встроить Perl в программу C ++, вам, возможно, придется перекомпилировать его, чтобы иметь одинаковые флаги компиляции на Perl и в вашей программе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...