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.c
    

    dann 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


Anmelden zum Antworten