Include C-Datei in einem C++-Datei
-
Hallo zusammen,
ich möchte eine in C geschriebene Anwendung in mein C++ Projekt einbinden. Falls ich das nun so kompiliere:
gcc -DHAVE_CONFIG_H -I. -I. -I. -I.. -I../c-project -g -O2 -c -o testcproject.o testcproject.cdann wird die Anwendung ohne Probleme kompiliert. Ersetze ich nun gcc durch g++ dann geht das nicht mehr. Brauche ich zusätzliche Optionen in g++?
danke+gruss,
Haksi
-
"Geht nicht" ist keine Fehlerbeschreibung. Bitte drück dich präziser aus.
Normalerweise sollte C-Code grösstenteils zu C++ kompatibel sein. Probleme könnte es eventuell mit Aufrufkonventionen/Linkages geben. Möglicherweise hilft ein
extern "C"...
-
Als ich mal ausprobiert hatte, C-Code mit g++ zu kompilieren, waren die meisten Probleme auf die strengeren Typecast-Regeln von C++ zurückzuführen.
Wie dem auch sei, C ist eben kein C++. Das meiste geht, manches halt nicht. Also, wenn der Code in C geschrieben ist, würde ich ihn auch als C (mit gcc) kompilieren. Die fertigen Object-Files sollten sich dann ohne weiteres auch mit C++-Code zusammen linken lassen. Vergiß nur das
extern "C"um die C-Header nicht.
-
ich habe ein interessanten Link gefunden werde mich mal da reinlesen:
http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html