Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Klassen in shared library exportieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.08.2006, 11:18 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
unter Windows, kann man ja mit


C++:
class __declspec(dllexport) MyClass
{
};



die klasse exportieren, damit sie auch dann aus der dll importierbar ist.

Wie mach ich das unter Linux? Ich bekomm aktuell sonst


Code:
undefined reference to `MyClass::MyClass()'



usw, wogegen das identische windowsbeispiel (mit dllexport) funktioniert.

Wenn ich statt __declspec(dllexport) unter linux __attribute__ ((dllexport)) schreibe, sagt er per Warning das er das ignoriert.

Wie exportier ich nun eine Klasse in eine so? (und btw, ich bekomme ja nur eine .so, wie sag ich dem compiler dann das er die .so verwenden soll? Evtl ist das der einzige Fehler, da nm sagt mir eigentlich das Symbol vorhanden ist in der so?

momentan erstell ich die so halt so:


Code:
$(CC) -shared -Wl,-soname,$(SONAME) -o $(SONAME).$(VERSION) $(OBJS)


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.08.2006, 11:38 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oh mir fällt grad auf, das die shared library funktioniert, nur die mit


Code:
ar rcs $(ANAME) $(OBJS)



erstellte statische library geht irgendwie schief?

Wie funktioniert das dann bei statischen libs?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: