Ich plane, Bibliotheken in meinem C++-Programm zu verwenden. Die Entwicklung erfolgt auf Linux, aber die Anwendung ist so konzipiert, dass sie sowohl unter Linux als auch unter Windows kompiliert wird. Verstehe ich richtig, dass das direkte Äquivalent für freigegebene Bibliotheken (.so) in Windows DLL ist?
In Linux kann ich mit g++ eine freigegebene Bibliothek unter Verwendung der Flags -fPIC
und -shared
erstellen. Nach meinem Wissen ist keine andere Codeänderung für eine freigegebene Bibliothek erforderlich. Aber in einem Windows-DLL sind die Dinge anders. Dort muss ich die Funktionen angeben, die mit dllexport exportiert werden sollen, richtig?
Meine Frage ist, wie ich mit dieser Situation umgehe. Ich meine, dllexport ist in Linux ungültig und der Compiler wird einen Fehler ausgeben. Aber es ist in Windows erforderlich. Wie schreibe ich also eine Funktion, die auf beiden Plattformen ohne Codeänderung kompiliert?
Verwendete Compiler
- g++ - LINUX
- VC++ - Windows
Jede Hilfe wäre großartig!