ich würde gerne ein Testprogramm für eine C++ lib (.so) in Linux für in Python erstellen. Anscheinend gibt es mehrere Möglichkeiten. In "reinem" C ist das anscheinend etwas leichter als in C++ (durch das sogenannte Namen-"mangling")
ist aber bei mir nicht der Fall (ich mein, bei mir ist es eine C++ lib)
Angenommen ich habe ein lib "mylib.so"
ideal wäre wenn ich einfach sagen könnte:
import mylib
Dann bekomme ich die Meldung
Code: Alles auswählen
>>> import mylib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dynamic module does not define init function
a) was geht hier dabei ab? (weil ich den ImportError bekomme)
b) Wie bekomme ich das Namenmangling in den Griff
Jetzt könnte ich das ganze mit ctypes importieren
zb:
Code: Alles auswählen
f = ctypes.cdll.LoadLibrary("./mylib.so")
Am besten wäre wahrscheinlich ein konkretes kurzes C++ Beispiel meinerseits
Um allfällige Einwänden zuvorzukommen (warum so umständlich):
Ich denke, der Ansatz "Mach doch ein Testprogramm in C++" ist langweilig Ausserdem kann ich in Python sicher umfangreichere Tests (wenn das einmal funktioniert) schneller bewerkstelligen, und das ist dann interessanter... zb. könnte ich mehrere Varianten mit interaktiver Benutzereingabe (oder automatisiert durchspielen) und dies als Parameter wieder an die C++ library weitergeben