Code: Alles auswählen
#ifdef _MSC_VER
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
int EXPORT foo()
{
return 0;
}
Code: Alles auswählen
#ifdef _MSC_VER
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
int EXPORT foo()
{
return 0;
}
jatobb hat geschrieben:Ist folgender Code geeignet um unter Windows DLLs (das fuktioniert) und unter Linux shared objects zu erstellen:
nein, normalerweise wird unter Linux/Unix alles exportiert, wenn dieses Verhalten absolut nicht gewünscht wird, müßte dem Linker eine Liste der zu exportierenden Symbole übergeben werden. Zumeist lohnt dieser Aufwand jedoch nicht.tobb hat geschrieben: Braucht man unter Linux nicht so etwas wie __declspec(dllexport) für Windows zu definieren?
Code: Alles auswählen
#ifdef __WINDOWS
...
Code: Alles auswählen
gcc 3.4 unter linux: __linux und __unix
gcc 3.3 unter aix: _AIX aber kein __unix
gcc 4.1 unter aix: _AIX aber kein __unix
gcc 3.4 unter sun: __sun und __unix
zOS: __MVS__ und __unix