Wie benutzt man extern "C" um C ++ Funktionen in C aufzurufen

8

Also habe ich etwa ein Dutzend Seiten gelesen, die erklären, wie man das macht, und für mein Leben kann ich es nicht zum Laufen bringen.

Ich habe eine in C ++ geschriebene Bibliothek und einen in C geschriebenen Code, der mit dem gnu-Compiler kompiliert wird, und ich kann den C ++ - Code einfach nicht von C aus aufrufen.

Ich habe eine Bibliothek in C ++ geschrieben:

printHeadOO.hpp

%Vor%

printSrcOO.cpp

%Vor%

Okay cool, wenn ich das von einem C ++ Programm aus anrufe, kompiliert es, läuft und alles ist glücklich. Aber nehmen wir an, ich rufe es stattdessen von einem C-Programm:

printMain.c

%Vor%

also alles kompiliert gut mit:

%Vor%

aber dann bei Link-Zeit:

%Vor%

gcc nimmt Folgendes auf:

%Vor%

Wie bekomme ich g ++ um Hooks zu erstellen, die gcc benutzen wird? Mache ich gerade etwas Dummes / vermisse etwas?

TIA Dan

    
user1892929 10.12.2012, 22:08
quelle

1 Antwort

9

Sie können Ihren C-Code mit gcc kompilieren und diese C ++ - Funktionen verwenden, aber Sie müssen die endgültige ausführbare Datei mit g ++ verknüpfen, da die C ++ - Funktionen die C ++ - Standardbibliothek benötigen:

%Vor%

Alternativ können Sie versuchen, manuell mit der C ++ - Bibliothek mit gcc:

zu verknüpfen %Vor%

Aber ich würde bei der Verknüpfung mit g ++ bleiben, da ich nicht sicher bin, ob es andere wichtige Link-Flags setzt.

    
Nikos C. 10.12.2012, 22:15
quelle

Tags und Links