Thread Parrot::Interpreter Win32 ActivePerl 5.8.8 (7 answers)
Opened by MatthiasW at 2008-09-22 19:31

murphy
 2008-09-24 21:17
#114906 #114906
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
MatthiasW+2008-09-24 18:10:50--
[...]
Kann ich DynaLoader irgendwie beibringen die Objektdatei zu laden?


Wohl kaum. Objektdateien sind nicht reloziert und enthalten keinerlei Referenzen auf die Bibliotheken, die geladen werden müssen, um sie zu benutzen – wenn Du so etwas in Dein Programm laden möchtest, musst Du Dir dafür einen eigenen dynamischen Linker schreiben, der weiss, was zu tun ist.

Quote
Ansonsten: Mit welchen Bibliotheken müsste ich die Objektdatei zusammenlinken um eine funktionierende DLL zu bekommen?
[...]


Nur mit der Laufzeitbibliothek von Perl (und eventuell deren Abhängigkeiten). Wenn Du mit den Modulen MakeMaker oder Build arbeitest sollte das auch eigentlich automatisch passieren.

Wenn Du es unbedingt von Hand linken willst, dann dürfte das Kommando irgendwie so ähnlich aussehen:
Code: (dl )
gcc -fPIC -shared hello.o -o hello.dll -L/pfad/zur/perl/bibliothek -lperl


Es ist oftmals wichtig, dass Du beim Linken das gleiche Flag für positionsunabhängigen Code (-fpic und/oder -fPIC) angibst wie beim Kompilieren.
When C++ is your hammer, every problem looks like your thumb.

View full thread Parrot::Interpreter Win32 ActivePerl 5.8.8