[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: C++/Python .so Problem ergänzung



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 05.07.2014 18:46, schrieb Volker Weißmann:
> Hallo, ich habe mal den Compelier-Befehlt geändert: g++ -shared
> -Wall -Wextra -pedantic src/RoboTest.cpp -o RASAPI.so Jetzt
> funktioniert das Python Skript: from ctypes import CDLL aou =
> CDLL("/home/volker/Dokumente/RoboterAG/RASAPI/RASAPI.so") Wenn ich
> allerdings am Ende noch ein aou.test() daran hänge erhalte ich
> folgende ausgabe: Traceback (most recent call last): File
> "python.py", line 3, in <module> aou.test() File
> "/usr/lib/python2.7/ctypes/__init__.py", line 378, in __getattr__ 
> func = self.__getitem__(name) File
> "/usr/lib/python2.7/ctypes/__init__.py", line 383, in __getitem__ 
> func = self._FuncPtr((name_or_ordinal, self)) AttributeError:
> absoluerPfad/RASAPI.so: undefined symbol: test
Wenn ich den Code in
#include <stdio.h>
extern "C" void test()
{
	printf("test");
}
ändere, funktioniert aou.test(). Aber ich will ja auch Klassen und
Exceptions haben, die es in C nicht gibt.
> Außerdem ist mir aufgefallen dass aou = CDLL("RELATIVER_PFAD")
> nicht funktioniert: Traceback (most recent call last): File
> "python.py", line 2, in <module> aou = CDLL("RASAPI.so") File
> "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__ 
> self._handle = _dlopen(self._name, mode) OSError: RASAPI.so: cannot
> open shared object file: No such file or directory
> 
> 
> 
> Gibt es eine andere Möglichkeit wie man C++ Funktionen von Python
> aus ausführen kann und in Python Instanzen von C++ Klassen anlegen
> kann? Ideal wäre es wenn man nicht aou.test(), sondern nur test()
> schreiben würde, das Python skript auf Variablen im C++ Code
> zugreifen kann und es auch über relative Dateipfade funktionieren
> würde.
> 
> 
> 

- -- 
Volker Weißmann
volker.weissmann@gmx.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Icedove - http://www.enigmail.net/

iQEcBAEBAgAGBQJTuCzIAAoJENDHbl9eTTNyKwwIAI2DR5yjLHz1nQ7AjwtHSOvu
wiUjorQWm97bjFcbDxCkiCzjU0+6IaSfAsny1HkS5YVe44eTPh1QHfVHhhdhGl83
mJ0K56eJ7hPbF9Qeh6Hh+U7WHZrn4csXBqOV+on6TIQkg2V46z085g3uPsTrJdFI
XHX6swjz5UGcCyknq92SZ2VclXOZaS7R8fqCB/2wNMmF9QHTukudHSJ7gonhIbgD
6U/66sck7YnB8ilUkhtlfPoylcQT8uUeWZpCoXye+Chvn+aYBilQRSzHKo+XHs1k
+TqYyKiiBGGdxcXWxkNo+nqlUUD8Qp05DzfnOP0TwvTk97D+V10hp9b9kDS1q6E=
=IiwU
-----END PGP SIGNATURE-----


Reply to: