Différence entre GCC et CC Compiler Différence entre

Anonim

CCCC vs CC Compiler

CC est le nom donné à la commande du compilateur UNIX. Il est utilisé comme commande de compilateur 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 GNU Compiler. Sur les systèmes fonctionnant sous GNU et Linux, il est courant de trouver que le CC est un lien de sorte que les scripts puissent utiliser indifféremment le compilateur de manière interchangeable. Différentes différences sont observées en ce qui concerne l'utilisation de la collection de compilateurs 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 traite les compilateurs C et les compilateurs C ++. Les compilateurs C ++ acceptent les programmes C ++ mais ne compilent pas les programmes en C arbitrairement. Ceci 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 si 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 les exécutent. La raison de ce problème est que la plupart des programmes C ++ exécutent des constructions qui ne sont pas disponibles dans C.

Les bibliothèques disponibles pour ces langues de programme dépendent largement de la langue. Les programmes C ++ peuvent fonctionner sur des bibliothèques C, mais ceci est spécifique à la plate-forme. Les programmes C, d'autre part, ne peuvent pas utiliser les bibliothèques C ++; Sous C ++, le code objet généré 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. les conventions seront différentes. Les principaux points de divergence sont la gestion des exceptions et la gestion des noms. Il est cependant important de noter que la gestion des noms est importante pour éviter que des objets compatibles soient liés entre eux. Ceci indique en fait que l'utilisation d'une bibliothèque compilée dans CC nécessite que le programme entier soit compilé dans CC. En outre, si vous avez besoin d'utiliser une bibliothèque compilée avec CC et une autre avec g ++, une recompilation des bibliothèques doit être effectuée pour garantir la fonctionnalité souhaitée.

En qualité d'assembleur généré, GCC, qui est la Collection de compilateurs GNU, est extrêmement performant dans cette tâche. Les compilateurs natifs fonctionnent cependant mieux parfois. On peut dire que les compilateurs Intel ont des optimisations complètes qui doivent encore être répliquées dans GCC.

Les deux compilateurs sont tous nouveaux dans 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).L'ancien support C89 est disponible dans les deux compilateurs et une compréhension des réponses attendues est cruciale pour s'assurer que le compilateur sort comme prévu. Dans l'ensemble, GCC semble se concentrer à rendre la vie plus facile en raison des extensions et des ajustements qui peuvent être faits pour obtenir le résultat souhaité.

Résumé

Il existe 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, l'ensemble du programme doit être 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 remarquable en créant des assemblages de qualité.

Les fonctionnalités de langage CC et GCC sont excellentes par rapport aux normes actuelles.