Puis-je intégrer Strawberry Perl dans 6.0 application compilée d'un VC ou utiliser Inline :: C avec le décalage du compilateur?
-
22-08-2019 - |
Question
Je cherche à intégrer Perl 5.10 dans une grande application C ++ compilé avec VC ++ 6.0. Cela conduit à deux questions.
1) Est-ce une mauvaise idée de simplement utiliser Perl Strawberry comme une dépendance plutôt que de compiler mon propre perl avec VC ++ 6.0? Serait FRAISE travail, même compte tenu de l'inadéquation du compilateur? Je présume que la fraise est compilé avec MinGW. Je préfère ne pas avoir beaucoup à garder mes propres perl personnalisés construire autour.
2) Si je suis allé la route fraise, serait quelque chose comme travail Inline :: C dans l'application embarquée? Vous auriez du code VC 6.0 appelant le MinGW compilé fraises à son tour d'appeler l'utilisateur MinGW code compilé. :: ligne C serait une capacité impressionnante pour ce que je suis en train de réaliser avec l'interpréteur Perl intégré.
La solution
Compte tenu de l'incertitude qui entoure, je recommande la compilation de Perl en utilisant MSVC au lieu d'expérimenter avec Strawberry Perl pour cette application. Il y a des instructions dans perlwin32 et discussion liés sur Perl moines pour vous guider.
En tant qu'ancien responsable de la version pour Strawberry Perl, je peux vous dire que ce n'est pas très difficile à faire si vous êtes à l'aise avec un compilateur déjà.
- xdg
Autres conseils
ActiveState Perl est compilé avec VC ++ 6.0. Il peut utiliser VC ++ 6.0 ou MinGW pour compiler les modules car ils contiennent un lien vers la même bibliothèque d'exécution C, Msvcrt.dll. Il serait préférable d'utiliser MinGW parce que VC ++ 6.0 est ni libre, ni facilement disponibles (sauf si vous pouvez être sûr qu'il est installé sur la machine cible.) Vous pouvez installer pPM Mingw maintenant et compiler les modules CPAN. Un grand nombre de modules compiler sans problème. Vous devrez peut-être configurer CPAN avec:
o yaml_module conf '' (deux guillemets simples, rien entre)
o engagent conf
Inline :: C fonctionne.