HowTo shared-object?
Verfasst: 02.02.2014 19:36
Was muss ich beachten, wenn ich eine shared-object Bibliothek mit purebasic unter linux (64-bit) erstellen möchte?
Ich dachte, es sei ein Bug, denke aber nun, dass es nur undokumentiert ist oder ich grad schlicht weg faile.
erzeugt nämlich einen segmentationfault/»ungültigen Speicherzugriff«, wenn jene .so von mir selbst programmiert wurde.
diese .so sieht folgendermaßen aus:
Der Sinn der __load__() ist es, beim laden der Bibliothek dem Hauptprogramm zu sagen, welche Prozeduren besonders referenziert werden sollen.
Sonstige .so lassen sich problemlos laden, scheint also an meinem code zu liegen, irgendwas mit *pointern nicht beachtet?
mfg
_sivizius
Ich dachte, es sei ein Bug, denke aber nun, dass es nur undokumentiert ist oder ich grad schlicht weg faile.
Code: Alles auswählen
lib = OpenLibrary(0, #pfad+"lib.so")
diese .so sieht folgendermaßen aus:
Code: Alles auswählen
;{ about
; a lib, just a lib. yes, of course, its a lib!
; writen by _sivizius, general of the Super Bots Army and
; king of all ponys of the whole world!
;}
;{ structures
Prototype.i initLib(name.p-ascii)
Prototype.i callErr(id.a)
;}
;{ vars
Global load.initLib
Global error.callErr
Global offset.u
;}
;{ project
Procedure __load__(self.u, *init, *error)
load = *init
error = *error
offset = self
load("example")
ProcedureReturn 1337
EndProcedure
Procedure example(self.u, *stream)
;stuff
EndProcedure
;}
Sonstige .so lassen sich problemlos laden, scheint also an meinem code zu liegen, irgendwas mit *pointern nicht beachtet?
mfg
_sivizius