8
votes

Comment dire au CPAN sur le chemin de faire et cc

Running Perl 5.10 cpan sur Solaris avec OpenCsw.org Packages, Makefile.pl à partir de packages ne peut pas trouver le chemin correct et CC (GCC).

J'ai trouvé le chemin pour le faire et la mettre à gmake, mais je ne trouve aucun réglage pour cc.

Je pensais que j'ai une fois défini ceci dans cpan / config.pm (ou avec O Config ...) mais ne peut plus trouver de réglage et ne pas avoir assez de patience pour faire tomber le fourré pour déterminer où une telle base chose devient défini.

Est-ce que quelqu'un sait?


0 commentaires

3 Réponses :


10
votes

cpan n'a pas besoin de savoir où gcc ou équivalent est, car il n'est pas cpan du travail de l'appelant directement . Habituellement, c'est makfile.pl ou build.pl qui doit savoir que, et il acceptera généralement le compilateur à utiliser comme argument de ligne de commande. Si vous ajoutez perlmaincc = / compilateur / à / utiliser sur o Conf makepl_arg qui devrait le faire.


1 commentaires

Config.pm est l'endroit où cela est défini et déterminera ce que chaque makefile.pl voit. Mais vous avez répondu à ma question. Merci!



2
votes

Les extensions doivent être construites avec les mêmes outils que Perl lui-même et Perl se souvient de ce que sont ces outils.

Si vous avez depuis supprimé ou que vous les avez déplacés, cela pourrait être un problème.

Mais plus probablement, vous n'avez pas installé le (s) paquet (s) de votre distribution qui leur fournit. Installez les paquets manquants.


1 commentaires

Je suis sur Solaris 10 et ma distribution est opencsw.org. Perl 5.8 provient du paquet Solaris d'origine, mais Perl 5.10 qui est d'abord dans mon chemin provient d'OpenCsw. J'ai également installé GCC et GMake et peut les exécuter à partir de la ligne de commande.



2
votes

1 commentaires

A couru dans ce problème dans un environnement de cluster essayant de construire net :: ssleay où le système cc était trop vieux et n'a pas pris en charge l'option -cstack-protector-forte . Réglage make_arg à cc = gcc (une version plus récente dans mon $ chemin ) était la solution correcte dans ce cas.