2012-01-04 10 views
8

Ejecutando Perl 5.10 CPAN en Solaris con paquetes de opencsw.org, Makefile.PL desde paquetes no puede encontrar la ruta correcta y cc (gcc).Cómo decirle a CPAN sobre la ruta a realizar y cc

Encontré la ruta para hacer y configurarlo en gmake, pero no puedo encontrar ninguna configuración para cc.

Pensé que una vez configuré esto en CPAN/Config.pm (o con o config ...) pero ya no puedo encontrar ninguna configuración y no tengo suficiente paciencia para recorrer el matorral para averiguar dónde lo básico se establece.

¿Alguien sabe?

Respuesta

10

cpan no necesita saber dónde está gcc o equivalente, porque no es el trabajo de cpan llamarlo directamente. Por lo general, es Makefile.PL o Build.PL lo que necesita saber, y generalmente aceptará el compilador como argumento de línea de comando. Si agrega PERLMAINCC=/compiler/to/use a o conf makepl_arg, debería hacerlo.

+0

Config.pm es donde este consigue el sistema y determinará lo que ve cada Makefile.PL. Pero respondiste mi pregunta. ¡Gracias! –

2

Las extensiones deben construirse con las mismas herramientas que Perl, y Perl recuerda cuáles son esas herramientas.

Si desde entonces los ha eliminado o movido, eso podría ser un problema.

Pero lo más probable es que no haya instalado los paquetes de su distribución que los proporciona. Instala los paquetes faltantes.

+0

Estoy en Solaris 10 y mi distribución es opencsw.org. Perl 5.8 es del paquete original de Solaris, pero Perl 5.10 que es el primero en mi camino es de OpenCSW. También tengo gcc y gmake instalados y puedo ejecutarlos desde la línea de comandos. –

2

En cpan_home/CPAN/Config.pm (o vía o conf):

'make_arg' => q[CC=/path/to/c-compiler] 
+0

Se encontró con este problema en un entorno de clúster al intentar generar Net :: SSLeay, donde el sistema 'cc' era demasiado antiguo y no admitía la opción' -fstack-protector-strong'. Configurar 'make_arg' a' CC = gcc' (una versión más reciente en mi '$ PATH') fue la solución correcta en este caso. – TheDudeAbides

Cuestiones relacionadas