Могу ли я внедрить Strawberry Perl в скомпилированное приложение VC++ 6.0 или использовать Inline::C с несоответствием компилятора?

Я смотрю на встраивание perl 5.10 в большое приложение C++, скомпилированное с помощью VC++ 6.0. Это приводит к двум вопросам.

1) Плохо ли просто использовать Strawberry Perl в качестве зависимости, а не компилировать собственный perl с VC++ 6.0? Будет ли Strawberry работать даже с учетом несоответствия компилятора? Я предполагаю, что Strawberry скомпилирован с mingw. Я бы предпочел не хранить свою собственную сборку Perl.

2) Если бы я пошел по пути Strawberry, работало бы что-то вроде Inline::C во встроенном приложении? У вас был бы код VC++ 6.0, вызывающий скомпилированный Strawberry mingw, в свою очередь, вызывающий скомпилированный mingw код пользователя. Inline::C был бы отличной возможностью для того, чего я пытаюсь добиться с помощью встроенного интерпретатора perl.


person kingkongrevenge    schedule 17.12.2008    source источник


Ответы (2)


Учитывая связанную с этим неопределенность, я бы рекомендовал компилировать Perl с помощью MSVC вместо экспериментов с Strawberry Perl для этого приложения. Инструкции есть в perlwin32 и в сопутствующее обсуждение на Perl Monks поможет вам.

Как бывший менеджер по выпуску Strawberry Perl, я могу сказать вам, что это не так уж сложно сделать, если вы уже знакомы с компилятором.

-- хдг

person xdg    schedule 17.12.2008
comment
Но специально скомпилированный perl для win32 отсутствует по сравнению со Strawberry. Нет встроенного cpan и mingw. Могу ли я легко заставить Inline::C работать с моим собственным win32 perl? - person kingkongrevenge; 18.12.2008
comment
Strawberry просто пакеты MinGW. Он настраивается во время компиляции. Таким образом, специально скомпилированный perl для win32 будет компилировать материал из CPAN, используя MSVC, с которым вы скомпилировали perl. А интегрированный CPAN — это просто предварительно настроенный CPAN. Вы можете скопировать \strawberry\perl\lib\CPAN\Config.pm и адаптировать по мере необходимости. - person xdg; 18.12.2008
comment
Но я определенно не хочу ставить MSVC на клиентские машины. Я хотел бы использовать аккуратно упакованный mingw без каких-либо проблем с лицензией. Можно ли вообще загрузить скомпилированный объектный код mingw в скомпилированный MSVC perl? - person kingkongrevenge; 18.12.2008

Perl Activestate скомпилирован с помощью VC++ 6.0. Он может использовать VC++ 6.0 или MinGW для компиляции модулей, поскольку они связаны с одной и той же библиотекой времени выполнения C, msvcrt.dll. Было бы предпочтительнее использовать MinGW, потому что VC++ 6.0 не является ни бесплатным, ни общедоступным (если вы не можете быть уверены, что он установлен на целевой машине). Вы можете установить Mingw с помощью PPM и скомпилировать модули из CPAN. Большое количество модулей компилируется без проблем. Возможно, вам придется настроить CPAN с помощью:

o conf yaml_module '' (две одинарные кавычки, ничего между ними)

о коммит конф

Встроенный :: C работает.

person Community    schedule 09.05.2009