Unterschied zwischen GCC und CC Compiler Unterschied zwischen

Anonim

GCC vs CC Compiler

CC ist der Name, der dem UNIX-Compilerbefehl gegeben wird. Es wird als Standard-Compilerbefehl für Ihr Betriebssystem verwendet und kann auch mit demselben Befehl ausgeführt werden. GCC hingegen ist das GNU Compiler-Betriebssystem. Auf Systemen, die unter GNU und Linux laufen, ist es üblich, dass der CC ein Link ist, so dass die Skripte beide Compiler synonym und einfach verwenden können. Bei der Verwendung der GNU-Compiler-Sammlung und des CC-Compilers gibt es verschiedene Unterschiede. Diese Unterschiede können im Allgemeinen in zwei Hauptgruppen gruppiert werden. Eine davon ist spezifischer, während die andere Gruppe generischer ist.

Unterschiede

Der Hauptunterschied zwischen den beiden behandelt C-Compiler und C ++ - Compiler. Die C ++ - Compiler akzeptieren C ++ - Programme, kompilieren jedoch keine Programme in C. Dies ist allgemein wahr, obwohl gezeigt wurde, dass es möglich ist, einen C-Sprachencode in einer Teilmenge zu schreiben, die von C ++ gut verstanden werden kann, selbst wenn viele C-Programme keine gültigen C ++ - Programme sind. Auf der anderen Seite akzeptieren C-Compiler C-Programme, lehnen jedoch die meisten C ++ - Programme ab, die in ihnen laufen. Der Grund, dass dieses Problem auftritt, ist, dass die meisten C ++ - Programme Konstrukte ausführen, die in C nicht verfügbar sind.

Die verfügbaren Bibliotheken für diese Programmsprachen sind stark von der Sprache abhängig. C ++ - Programme können C-Bibliotheken ausführen, dies ist jedoch plattformspezifisch. C-Programme können andererseits keine C ++ - Bibliotheken verwenden; C ++ neigt daher dazu, einen größeren Bibliothekssatz als C zur Verfügung zu haben.

Unter Solaris ist der Objektcode, der vom Compilerbefehl erzeugt wird, in keiner Weise mit dem von g ++ erzeugten Code kompatibel, da es sich um zwei separate Compiler und deren handelt Konventionen werden sich unterscheiden. Die hauptsächlichen Unterschiede sind die Ausnahmebehandlung und das Mangeln von Namen. Es ist jedoch wichtig anzumerken, dass eine Namensverfälschung wichtig ist, um zu verhindern, dass Objekte miteinander verknüpft werden können. Dies deutet darauf hin, dass die Verwendung einer in CC kompilierten Bibliothek erfordert, dass das gesamte Programm in CC kompiliert wird. Wenn Sie eine mit CC kompilierte Bibliothek und eine mit g ++ kompilierte Bibliothek verwenden müssen, muss außerdem eine Neukompilierung von Bibliotheken durchgeführt werden, um die gewünschte Funktionalität sicherzustellen.

In der Qualität des Assembler, der generiert wird, ist GCC, die GNU Compiler Collection, sehr gut in dieser Aufgabe. Native Compiler funktionieren jedoch manchmal besser. Man kann sagen, dass Intel-Compiler über gründliche Optimierungen verfügen, die in GCC noch repliziert werden müssen.

Beide Compiler sind alle neu in den aktuellen Standards, obwohl es kleine Unterschiede zwischen der Standardsprache und der vom Compiler unterstützten Sprache gibt. Diese Standards sind (C ++ 98, C ++ 2003, C99).Ältere C89-Unterstützung ist in beiden Compilern verfügbar, und ein Verständnis der erwarteten Antworten ist entscheidend, um sicherzustellen, dass der Compiler erwartungsgemäß ausgeführt wird. Alles in allem scheint GCC darauf ausgerichtet zu sein, das Leben durch Erweiterungen und Verbesserungen zu erleichtern, um das gewünschte Ergebnis zu erzielen.

Zusammenfassung

Es gibt ein Problem mit der Kreuzkompatibilität von C- und C ++ - Compiler-Bibliotheken.

C ++ - Programme können C-Bibliotheken ausführen, aber dies ist plattformspezifisch.

Um eine in CC erstellte Bibliothek zu verwenden, muss das gesamte Programm mit CC und nicht mit GCC kompiliert werden.

Wenn Sie eine Bibliothek in CC und g ++ kompiliert haben, muss eine der Bibliotheken neu kompiliert werden.

GCC leistet hervorragende Arbeit bei der Erstellung hochwertiger Baugruppen.

Sowohl CC als auch GCC in den Sprachfunktionen sind in Bezug auf die aktuellen Standards großartig.