2010-11-11 18 views
8

Estoy usando la última versión de Ubuntu que viene con la versión de gcc 4.4.5. Necesito recompilar un programa que no haya sido escrito por mí y que solo se pueda compilar con una versión anterior de gcc como la 4.0. Logré configurar esta versión anterior y usé un prefijo durante el proceso de instalación para que mi versión anterior de gcc esté en /opt/gcc-4.0.1/bin. Intenté crear un enlace simbólico usando ln -s /opt/gcc-4.0.1/bin/gcc gcc. Pero cuando invoco gcc -v sigo obteniendo el resultado gcc version 4.4.5. Para compilar mi programa que ya viene con un archivo MAKE, si lo hago make, sigue usando la nueva versión de gcc. ¿Cómo podría decirle al make que use la versión anterior?Cómo usar 2 versiones diferentes de GCC en Linux Ubuntu y forzar MAKE para usar una de ellas

Respuesta

18

Utiliza algunas variables estándar para determinar qué herramientas usar, la variable del compilador C se llama "CC". Puede establecer la variable de CC, ya sea directamente en su Makefile

CC=/opt/gcc-4.0.1/bin/gcc 

lo cual está bien si usted está trabajando solo en él, o todos tienen la misma configuración. O puede pasar en la línea de comandos, así:

make CC=/opt/gcc-4.0.1/bin/gcc 

la tercera opción se establece /opt/gcc-4.0.1/bin antes de que todo lo demás en su camino (por lo que no funciona para usted, el directorio actual no está en el camino, por lo que el enlace simbólico que se pone ahí no será considerado en la búsqueda)

export PATH=/opt/gcc-4.0.1/bin:$PATH 

para completar, en su solución de enlace simbólico, que tendría que invocar ./gcc para obtener el derecho gcc instancia, pero en mi humilde opinión, esta no es probablemente la mejor solución.

HTH

+1

Si el paquete de la OP está recopilando utiliza un script 'configure', a continuación, establecer' cc' como una variable de shell exportado antes de ejecutar 'configure' debe configurarlo en el' generada Makefile'. – caf

+1

make CC =/opt/gcc-4.0.1/bin/gcc funciona perfectamente y es la solución más fácil. Gracias – blackLabrador

Cuestiones relacionadas