C-Lib in ein C++ -Projekt einbinden
-
Hallo Leute!
Ich bin neu in diesem Forum und habe noch nicht sooo viel Erfahrung im Umgang mit C++. Darum wende ich mich mit dem folgenden Problem an euch.
Ich habe eine statische Bibliothek in C geschrieben und möchte diese für eine Simulation mit dem Simulationstool OMNeT++ nutzen. OMNeT++ basiert aber auf C++. Mein Problem ist, dass ich vorher noch nie eine C-Lib in ein C++ -Projekt eingebunden habe und daher auch nicht weiß wie ich an die ganze Sache herangehen muss.
Ich habe bisher versucht die Lib einfach über ein #include einzubinden und dieses #include mit extern "C" zu kennzeichnen.
Das hat aber nur zur Folge dass mir ein paar tausend Fehler beim Build-Prozess entgegen geworfen werden (z. B. "exponent has no digits", "invalid suffix y on integer constant und viele andere").
Nun weiß ich nicht weiter. Ich hoffe ja dass mir jemand von euch helfen kann und mir am besteten auch noch sagen kann was ich falsch gemacht habe.Nun noch ein paar Informationen am Rande:
Compiler für die C-Lib: gcc 4.7.2
Compiler für das C++ -Projekt: gcc 4.7.2
IDE: OMNeT++ (angepasstes Eclipse)
Plattform: Linux, Windows (es passiert überall das Gleiche)Viele Grüße
derBauer
-
Eigentlich ist
extern "C"schon der richtige Weg. Also wirst du wohl dabei etwas falsch gemacht haben. Ein konkretes Beispiel:C-Bibliothek:
#include <stdio.h> #include "test.h" // Hier eigentlich nicht nötig, aber um zu zeigen, dass es funktioniert void foo() { puts("Hello World!"); }C++-Anwendungscode:
#include "test.h" int main() { foo(); }Gemeinsamer Header test.h:
#ifndef TEST_H #define TEST_H // Damit man den Header auch in C benutzen kann: #ifdef __cplusplus extern "C"{ #endif void foo(); #ifdef __cplusplus } #endif #endif
-
Danke für die schnelle Antwort und das ausführliche Beispiel. Ich glaube ich sehe meinen Fehler und darum werde ich das auch gleich mal ausprobieren.
Vielen vielen Dank.
Viele Grüße
derBauer