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