C++/Python .so Problem

04/07/2014 - 16:50 von Volker Weißmann | Report spam
Hash: SHA1

Hallo,
ich möchte eine .so Datei erstellen und ein Python Skript soll diese
Datei benutzen.
Ich habe erst einmal eine Test-C++ Quellcode Datei (.cpp) geschrieben:

#include <stdio.h>
void test()
{
printf("test");
}

und dann mittels:
g++ -shared o.g.QuellcodeDatei >> RASAPI.so
die Datei RASAPI.so erfolgreich erstellt.

Anschließend habe ich eine Python Skript geschrieben:

from ctypes import CDLL
aou = CDLL("absoluterPfad/RASAPI.so")

Doch wenn ich das Python Skript starte erhalte ich folgende Fehlermeldung:
Traceback (most recent call last):
File "python.py", line 2, in <module>
aou = CDLL("absoluterPfad/RASAPI.so")
File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: absoluterPfad/RASAPI.so: file too short



Meine Frage:
Wie kann ich machen dass es funktioniert?


Volker Weißmann
volker.weissmann@gmx.de


Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-REQUEST@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)
Archive: https://lists.debian.org/53B6BD13.5080900@gmx.de
 

Lesen sie die antworten

#1 Michael Welle
04/07/2014 - 17:50 | Warnen spam
Hallo,

Volker Wysk writes:
[..]
Mir scheint Deine Methode, die RASAPI.so durch umgeleitet Ausgabe zu erzeugen,
sehr verdàchtig. Ich denke, es sollte "-o RASAPI.so" heißen,


so ist es. Ein -fPIC kann auch nicht schaden.


Dein Pythonskript kommt mir auch komisch vor:


so ist es ;). AFAIK kann ctypes nur mit C-Funktionen umgehen, C++ name
mangling ist da ein Problem. Deinem C++-Schnipsel musst Du also noch ein
extern "C"{} spendieren.

VG
hmw

biff4emacsen - A biff-like tool for (X)Emacs
http://www.c0t0d0s0.de/biff4emacsen...acsen.html
Flood - Your friendly network packet generator
http://www.c0t0d0s0.de/flood/flood.html


Zum AUSTRAGEN schicken Sie eine Mail an
mit dem Subject "unsubscribe". Probleme? Mail an (engl)
Archive: https://lists.debian.org/

Ähnliche fragen