Aktuelle Zeit: 06.12.2019 02:14

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Linux Shared Librarys erstellen (wie DLLs unter Windows)
BeitragVerfasst: 26.04.2008 21:12 
Offline

Registriert: 08.09.2004 11:48
Wohnort: Morsbach (Am Arsch der Welt)
Hab eben ein bisschen rumprobiert mit der Library() lib von PB und festgestellt, dass man die libs unter /usr/lib zB damit öffnen kann und auch deren Funktionen auslesen. (Ja ich weiss, ich hab keine ahnung von Linux, aber wenigstens versuch ich so es zu lernen)

Nun die Frage ob man diese Libs auch mit PB erstellen kann, so wie unter Windows DLLs. Unter Linux kann man ja nur zwischen Console und Linux als ExecutableType auswählen, allerdings kann man die Schlüsselwörter ProcedureDLL durchaus benutzen.
Hab probiert eine Date mit ProcedureDLLs zu kompilieren und dann als Library() zu laden, aber das hat nicht geklappt. Muss man sich an ein bestimmtes Format halten oder ist es mit PB nicht möglich Librarys unter Linux zu erstellen?

Nebenbei die Frage gibt es unter Linux auch eingebaute API funktionen, sowie unter Windows mit dem Unterstrich? Und wenn ja, wo gibt es einen Überblick, sowas wie den API-Guide für Windows. Mit den eingebauten PB Funktionen kommt man ja nicht überall hin (siehe zB meinen Thread um anderen Fenstern Tastenschläge zu simulieren)

_________________
Ich hänge zu oft und zu lange vor dem PC! Ich muss dringend was an meinem Lebenswandel verändern!.......
Nur heute geht's grad nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 26.04.2008 21:20 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
Das Linux Gegenstück zu DLLs sind *.so Bibliotheken. Kannst du auch erstellen, musst du nur da wo du das Output Format angibst auswählen (weiß ich gerade nicht aus dem Kopf).

Das mit der API ist dort etwas anders, es gibt keine zentrale. Du kannst von PureBasic aus aber gleich nativ (also die original Befehle mit Unterstrich) auf die APIs von SDL und GTK zugreifen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 26.04.2008 21:20 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
DLLs haben in Linux die Endung: .so und können mit der aktuellen PB-Linux
Version erstellt werden.

Unter Linux gibt es mehrere APIs, z.B. GTK, SDL usw. die auch mit einem
Unterstrich am ende genutzt werden können.

Infos zu den API-Funktionen findet man auf der jeweiligen Website zur Lib
oder kann man sich installieren. devhelp ist ein Programm zum Anzeigen
dieser Hilfen. Die Hilfen selber heissen dann: libgtkxxxxx.doc, wobei xxx
die jeweilige Version ist.

Wenn man also die *.dev für PB installiert, sollte man, falls vorhanden auch
die passenden *.doc mitinstallieren, sowie devhelp um diese anzusehen.

_________________
PureBasic 5.71 | SpiderBasic 2.21 | Windows 10 Pro (x64) | Linux Mint 19.2 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 27.04.2008 12:29 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Siehe ganz oben hier im Forum: Ressourcen zur Linux-Programmerung

_________________
Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 19.04 LTS x64, PureBasic 5.71 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Danke
BeitragVerfasst: 28.04.2008 11:11 
Offline

Registriert: 08.09.2004 11:48
Wohnort: Morsbach (Am Arsch der Welt)
danke für die Antwort. Hab jetzt die neuste Beta runtergeladen und da erscheint auch die Option für so shared libs....

_________________
Ich hänge zu oft und zu lange vor dem PC! Ich muss dringend was an meinem Lebenswandel verändern!.......
Nur heute geht's grad nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 07.05.2008 11:26 
Offline
Benutzeravatar

Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge
Was ich nicht verstehe ist, dass die Librarys, zum Beispiel die FMOD "libfmod-3.75.so" nur mit PB geöffnet werden, wenn sie in das Verzeichnis "/usr/lib/" kopiert wurden. In der Hilfe steht doch bei OpenLibrary() drin:

"Normalerweise, wenn Sie keinen Pfad als Teil des Dateinamens mit angeben, dann wird die Library im Verzeichnis Ihres Programms gesucht, und wenn sie sich nicht dort befindet, das Verzeichnis der Systembibliotheken durchsucht."

Kann mir jemand weiterhelfen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 07.05.2008 15:07 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:37
Vermilion hat geschrieben:
Das Linux Gegenstück zu DLLs sind *.so Bibliotheken. Kannst du auch erstellen, musst du nur da wo du das Output Format angibst auswählen (weiß ich gerade nicht aus dem Kopf).

Das mit der API ist dort etwas anders, es gibt keine zentrale. Du kannst von PureBasic aus aber gleich nativ (also die original Befehle mit Unterstrich) auf die APIs von SDL und GTK zugreifen.


Doch es gibt eine zentrale Linux API, allerdings kann die von den Distributionen abweichen und hat rein garnichts mit GUI zu tun so wie die Windows API:

http://www.purebasic.fr/german/viewtopic.php?t=7151

_________________
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 07.05.2008 15:29 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Lebostein hat geschrieben:
Was ich nicht verstehe ist, dass die Librarys, zum Beispiel die FMOD "libfmod-3.75.so" nur mit PB geöffnet werden, wenn sie in das Verzeichnis "/usr/lib/" kopiert wurden. In der Hilfe steht doch bei OpenLibrary() drin:

"Normalerweise, wenn Sie keinen Pfad als Teil des Dateinamens mit angeben, dann wird die Library im Verzeichnis Ihres Programms gesucht, und wenn sie sich nicht dort befindet, das Verzeichnis der Systembibliotheken durchsucht."

Kann mir jemand weiterhelfen?

Ich würde "./" vor dem Namen setzen, das wäre Linux-Üblich

_________________
PureBasic 5.71 | SpiderBasic 2.21 | Windows 10 Pro (x64) | Linux Mint 19.2 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 07.05.2008 15:37 
Offline
Benutzeravatar

Registriert: 29.08.2004 20:46
Wohnort: Luxemburg
DD: Falls du die Standardbefehle meinst, wie man sie bei praktisch jeder Linux-Distri findet: Nein, das ist keine API. Das ist eher (allerdings bin ich mir da absolut nicht sicher) POSIX... :wink:

_________________
„Warum siehst du den Splitter im Auge deines Bruders, aber den dicken fetten schwarzen Zensurbalken vor deinem Auge bemerkst du nicht?“


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 07.05.2008 16:08 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:37
hardfalcon hat geschrieben:
DD: Falls du die Standardbefehle meinst, wie man sie bei praktisch jeder Linux-Distri findet: Nein, das ist keine API. Das ist eher (allerdings bin ich mir da absolut nicht sicher) POSIX... :wink:


http://de.wikipedia.org/wiki/Portable_Operating_System_Interface
Zitat:
Das Portable Operating System Interface (POSIX [ˈpɒsɪks]) ist ein gemeinsam von der IEEE und der Open Group für Unix entwickeltes standardisiertes Application Programming Interface, [...]

_________________
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye