INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Linux shared libary (*.so) einbinden



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

17.02.2009, 11:31
Beitrag #1

Donald Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Sep 2008

8.5/8.6
2008
de

10319
Deutschland
Linux shared libary (*.so) einbinden
Moin liebe LVGemeinde,

habe vorab eine Frage zum einbinden von Shared Libiaries unter Linux. Ich habe mir die beiden Tutorials zum Einbinden von dll´s unter Windows angeschaut und muss sagen top. recht verständlich erklärt und käme auch damit zurecht.

Nun muss ich aber mit Linux arbeiten. Ich habe bereits eine *.so erstellt. War alles kein Problem. Was ich mich jetzt frage ist, ob ich auch ähnlich wie bei den dll´s einen Befehl wie "__declspec (dllexport)" in die source einfügen muss.

Sprich muss ich für die *.so auch noch was in die source mit einfügen. Habe schon gegooglet aber nichts diesbezüglich gefunden.

Danke euch im Voraus.

ps. falls wichtig unter linux habe ich nur die LV 8.2 zur Verfügung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.02.2009, 08:34
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Linux shared libary (*.so) einbinden
' schrieb:Moin liebe LVGemeinde,

habe vorab eine Frage zum einbinden von Shared Libiaries unter Linux. Ich habe mir die beiden Tutorials zum Einbinden von dll´s unter Windows angeschaut und muss sagen top. recht verständlich erklärt und käme auch damit zurecht.

Nun muss ich aber mit Linux arbeiten. Ich habe bereits eine *.so erstellt. War alles kein Problem. Was ich mich jetzt frage ist, ob ich auch ähnlich wie bei den dll´s einen Befehl wie "__declspec (dllexport)" in die source einfügen muss.

Sprich muss ich für die *.so auch noch was in die source mit einfügen. Habe schon gegooglet aber nichts diesbezüglich gefunden.

Danke euch im Voraus.

ps. falls wichtig unter linux habe ich nur die LV 8.2 zur Verfügung.

Das ELF Format (das binäre File Objekt file Format verwendet bei den meisten modernen Unixen) kennt keine spezifiken Export Direktiven. Alles was in den Objektfiles nicht als static (also grundsätzlich nur im eigenen Modul verfügbar) deklariert ist ist in einer shared library als Symbol verfügbar. GCC kennt aber das "__attribute__((dllexport))" um dem Linker einen extra hint zu geben.

Selber löse ich das so dass ich ein PreProzessor Symbol deklariere dass für Windows auf __declspec(dllexport) deklarieret wird und für Linux auf __attribute__((dllexport)) oder leer. Bei cygwin and mingw wird auch __declspec(dllexport) erkannt aber das sind dann auch die GCC Toolchains die spezifiek für Win32 angepasst sind.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Type Libary Pfad herausfinden LabDevo_CLD 1 6.180 24.07.2017 10:25
Letzter Beitrag: jg
  verschiedene DLLs über ein Libary Fct Node M@rRy 16 11.728 19.08.2011 12:37
Letzter Beitrag: GerdW
  Einbindung der Vector driver libary 6.7 in LabVIEW Langen8 3 6.612 31.07.2009 14:31
Letzter Beitrag: rolfk
  Call Libary Function Node pannchen 3 8.367 06.04.2009 08:11
Letzter Beitrag: pannchen

Gehe zu: