GCC vs CC Compiler
CC est le nom donné à la commande du compilateur UNIX. Il est utilisé comme commande de compilation par défaut pour votre système d’exploitation et est également exécutable avec la même commande. GCC, d’autre part, est le système d’exploitation du compilateur GNU. Sur les systèmes fonctionnant sous GNU et Linux, il est courant de trouver que le CC est un lien afin que les scripts puissent utiliser l’un ou l’autre compilateur de manière interchangeable et facile. Il existe diverses différences observées en ce qui concerne l’utilisation de la collection du compilateur GNU et du compilateur CC. Ces différences peuvent généralement être regroupées en deux groupes principaux. L’un d’eux est plus spécifique tandis que l’autre groupe est plus générique.
Différences
La principale différence entre les deux concerne les compilateurs C et les compilateurs C++. Les compilateurs C++ acceptent les programmes C++ mais ne compilent pas de programmes en C arbitrairement. Cela est généralement vrai, bien qu’il ait été démontré qu’il est possible d’écrire un code de langage C dans un sous-ensemble qui peut être bien compris par C ++ même lorsque de nombreux programmes C ne sont pas des programmes C ++ valides. D’un autre côté, les compilateurs C acceptent les programmes C mais rejettent la plupart des programmes C++ qui s’y exécutent. La raison pour laquelle ce problème se pose est que la plupart des programmes C++ exécutent des constructions qui ne sont pas disponibles en C.
Les bibliothèques disponibles pour ces langages de programme dépendent en grande partie du langage. Les programmes C++ peuvent fonctionner sur des bibliothèques C, mais cela est spécifique à la plate-forme. D’autre part, les programmes C ne peuvent pas utiliser de bibliothèques C++; C++ a donc tendance à avoir un ensemble de bibliothèques plus grand que C.
Sur Solaris, le code objet produit par la commande du compilateur n’est en aucun cas compatible avec le code produit par le g++ car il s’agit de deux compilateurs distincts et leurs conventions seront différentes. Les principaux points différents sont la gestion des exceptions et la modification des noms. Il est cependant important de noter que la modification des noms est importante pour éviter que des objets compatibles ne soient liés entre eux. Cela indique en effet que l’utilisation d’une bibliothèque compilée en CC nécessite que l’ensemble du programme soit compilé en CC. De plus, si vous devez utiliser une bibliothèque compilée avec CC et une autre avec g++, une recompilation des bibliothèques doit être effectuée pour assurer la fonctionnalité souhaitée.
En qualité d’assembleur généré, GCC, qui est la collection du compilateur GNU, est extrêmement bon dans cette tâche. Les compilateurs natifs fonctionnent cependant mieux parfois. On peut dire que les compilateurs Intel ont des optimisations approfondies qui doivent encore être répliquées dans GCC.
Les deux compilateurs sont dans l’ensemble nouveaux pour les normes actuelles, même s’il existe de minuscules différences entre le langage standard et le langage pris en charge par le compilateur. Ces normes sont (C++98, C++2003, C99). Un support C89 plus ancien est disponible dans les deux compilateurs et une compréhension des réponses attendues est cruciale pour s’assurer que le compilateur se déroule comme prévu. Dans l’ensemble, GCC semble se concentrer sur la facilité de la vie grâce aux extensions et aux ajustements qui peuvent lui être apportés pour obtenir le résultat souhaité.
Résumé
Il y a un problème de compatibilité croisée des bibliothèques de compilateurs C et C++.
Les programmes C++ peuvent fonctionner sur des bibliothèques C, mais cela est spécifique à la plate-forme.
Pour utiliser une bibliothèque composée en CC, il faut que tout le programme soit compilé avec CC et non avec GCC.
Si vous avez une bibliothèque compilée en CC et g++, l’une des bibliothèques doit être recompilée.
GCC fait un travail merveilleux dans la création d’assemblages de qualité.
Les fonctionnalités du langage CC et GCC sont excellentes par rapport aux normes actuelles.