1 votos

¿Algún problema para sustituir gcc y g++ por versiones de GNU?

Tengo entendido que Clang es el compilador por defecto y recomendado para MacOS. Por defecto MacOS tiene binarios para gcc y g++ en /usr/bin/ que son los mismos que clang y clang++ .

¿Cuáles son los posibles problemas (si los hay), si reemplazo los binarios por defecto de MacOS para los binarios gcc y g++ con las versiones GNU?

0 votos

Siempre se puede instalar gcc en /usr/local/... . y ajustar PATH .

0 votos

Vaya. Acabas de cambiar mi pregunta y la has "contestado". Sé que puedo ajustar la ruta y sé cómo instalar GCC. Esa no era mi pregunta, mi pregunta es si hay algún problema posible si reemplazo los binarios.

0 votos

Había varias preguntas ocultas en tu pregunta, centré mi edición en una de ellas. Tu edición aclaró que buscabas otra cosa, lo cual está totalmente bien.

0voto

Jose Chavez Puntos 645

Hay algunos posibles problemas con la sustitución de los binarios:

1) Es posible que se reemplacen cuando se actualice MacOS

2) El binario construido por gcc puede funcionar de forma diferente a uno construido con clang

3) La interfaz del compilador (es decir, las opciones de la línea de comandos y otros archivos de entrada/salida) puede ser diferente, con una sintaxis ligeramente distinta, etc.

En general, si sustituyes los binarios y empiezas a construir tu propio software ejecutando gcc en la línea de comandos, funcionará sin problemas.

El problema es que otros programas de tu ordenador pueden asumir que tienes clang allí. Así que los instaladores, Xcode, etc. podrían sufrir problemas extraños. Lo más probable es que este no sea el caso, ya que Xcode no ejecutará el binario gcc, pero para proyectos de terceros o proyectos más antiguos - es difícil de saber.

Básicamente: Normalmente no merece la pena arriesgarse a sustituir los binarios del compilador proporcionado por el sistema. Simplemente añade nuevos binarios para tus propios compiladores al lado (es decir, instálalos con homebrew o lo que sea). Entonces usted elige usar esos compiladores, y todo lo demás se comportará como lo hacía antes.

En cuanto a la pregunta que tenías en una edición anterior de tu pregunta preguntando por qué Apple "hizo esto": De hecho, es una ocurrencia común en los sistemas Unixoid que los nombres antiguos de los compiladores sean en realidad una fachada para los nuevos compiladores. Esto se hace normalmente para lograr la compatibilidad con los programas antiguos. Por ejemplo, usted tenía un proyecto que codificó "gcc" en lugar de "cc" como el nombre del compilador, y en lugar de romper la construcción de todo el mundo scripts cuando se sustituye gcc con clang, simplemente se añade un binario gcc que realmente ejecuta clang. En la mayoría de los casos eso funcionará produciendo los resultados que la gente esperaba, en algunos casos raros - no funciona, y tendría que instalar el compilador más antiguo (o diferente) usted mismo.

0 votos

Gracias por la respuesta. Personalmente, prefiero instalar el programa antiguo (por ejemplo, GCC), yo mismo si falta en lugar de que el sistema operativo decida por mí lo que necesito. Pero puedo ver como algunas personas pueden preferir no tener que preocuparse por eso.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X