Unterschied zwischen GCC und CC Compiler

GCC vs CC Compiler

CC ist der Name, der dem UNIX-Compiler-Befehl gegeben wird. Es wird als Standard-Compiler-Befehl für Ihr Betriebssystem verwendet und kann auch mit demselben Befehl ausgeführt werden. GCC hingegen ist das Betriebssystem des GNU-Compilers. Auf Systemen, die unter GNU und Linux laufen, wird häufig festgestellt, dass der CC ein Link ist, sodass die Skripts beide Compiler austauschbar und problemlos verwenden können. Bei der Verwendung der GNU-Compiler-Collection und des CC-Compilers werden verschiedene Unterschiede beobachtet. Diese Unterschiede können im Allgemeinen in zwei Hauptgruppen eingeteilt werden. Eine davon ist spezifischer, während die andere Gruppe generischer ist.

Unterschiede

Der Hauptunterschied zwischen den beiden betrifft C-Compiler und C ++ - Compiler. Die C ++ - Compiler akzeptieren C ++ - Programme, kompilieren jedoch keine Programme in C willkürlich. Dies trifft im Allgemeinen zu, obwohl gezeigt wurde, dass es möglich ist, einen C-Sprachcode in eine Teilmenge zu schreiben, der von C ++ gut verstanden werden kann, auch 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 ausgeführt werden. Dieses Problem tritt auf, weil die meisten C ++ - Programme Konstrukte ausführen, die in C nicht verfügbar sind.

Die verfügbaren Bibliotheken für diese Programmiersprachen hängen stark von der Sprache ab. C ++ - Programme können C-Bibliotheken ausführen, dies ist jedoch plattformspezifisch. C-Programme hingegen können keine C ++ - Bibliotheken verwenden. Daher hat C ++ tendenziell einen größeren verfügbaren Bibliothekssatz als C.

Unter Solaris ist der Objektcode, der vom Compiler-Befehl erzeugt wird, in keiner Weise mit dem von g ++ erzeugten Code kompatibel, da dies zwei separate Compiler sind und deren Konventionen sich unterscheiden. Die Hauptunterschiede sind Ausnahmebehandlung und Namensveränderung. Es ist jedoch wichtig anzumerken, dass Namensverstümmelung wichtig ist, um zu verhindern, dass kompatible Objekte miteinander verknüpft werden. Dies deutet tatsächlich 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 andere mit g ++ verwenden müssen, müssen die Bibliotheken neu kompiliert werden, um die gewünschte Funktionalität zu gewährleisten.

In der Assembler-Qualität, die generiert wird, ist GCC, die GNU-Compiler-Collection, extrem gut für diese Aufgabe. Native Compiler funktionieren jedoch manchmal besser. Von Intel-Compilern kann gesagt werden, dass sie gründliche Optimierungen haben, die noch in GCC repliziert werden müssen.

Beide Compiler sind insgesamt neu gegenüber den aktuellen Standards, auch wenn zwischen der Standardsprache und der vom Compiler unterstützten Sprache nur geringe Unterschiede bestehen. Diese Standards sind (C ++ 98, C ++ 2003, C99). Ältere C89-Unterstützung ist in beiden Compilern verfügbar, und das Verständnis der erwarteten Antworten ist entscheidend, um sicherzustellen, dass der Compiler wie erwartet rollt. Alles in allem scheint sich GCC darauf zu konzentrieren, das Leben durch Erweiterungen und Optimierungen zu erleichtern, die vorgenommen werden können, um das gewünschte Ergebnis zu erzielen.

Zusammenfassung

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

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

Um eine in CC zusammengestellte Bibliothek verwenden zu können, 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 wunderbare Arbeit beim Erstellen hochwertiger Baugruppen.

Sowohl CC als auch GCC in Bezug auf die Sprachfunktionen sind in Bezug auf die aktuellen Standards hervorragend.