Zitat Zitat von botty Beitrag anzeigen
Wenn Du aber eine "*.c"-Datei dem Projekt hinzufügst, dann wird diese mit dem GCC und nicht dem g++ kompiliert. Bei *.cc *.cpp vice versa.
Dementsprechend müssen dann die Header "extern "C" { ... }" oder auch nicht enthalten, sonst produziert der Linker freudig Fehlermeldungen.
Ein Unterschied zwischen C und C++ liegt darin, dass C die Namen für Funktionen direkt aus dem Quelltext übernimmt.
C++ erzeugt decoratet Labels, an den Funktionsnamen werden einfach noch Buchstaben angehängt, welche die Aufruf-Parameter angeben. Dadurch werden überladene Funktionen für den Linker unterschiedlich. Man braucht also keinen speziellen Linker für C++.

Zudem war C++ ursprünglich eigentlich nur eine Art Preprozessor. Ein C++-Programm wurde in ein C-Programm umgesetzt, welches dann mit dem C-Compiler übersetzt wurde.

MfG Peter(TOO)