Pepper
-

Pythonボックスで共有ライブラリ(.so)を使用する方法について

こんにちは。

今回お聞きしたいのは

C++で作成した共有ライブラリ(.so)をChoregrapheを通してPepper上で動かすことは可能でしょうか

また、

可能であればPythonボックスで使用する方法を伝授して頂きたいです。

環境はWindows7 64bit

helloという文字を返却するメソッドがあるラッパークラスで[libhello.so]を作成しました。

libファイルを作成し、その中に[フォルダのインポート]で[libhello.so]を読み込んで、 Pythonボックスで

test = cdll.LoadLibrary('libhello.so')

でエラーが発生してしまいます。

エラー内容は

[ERROR] behavior.box :_safeCallOfUserMethod:125 _Behavior__lastUploadedChoregrapheBehaviorbehavior_1830747248:/loadLibrary_1: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/albehavior.py", line 113, in _safeCallOfUserMethod func(functionArg) File "", line 43, in onInput_onStart File "/usr/lib/python2.7/ctypes/init.py", line 443, in LoadLibrary return self._dlltype(name) File "/usr/lib/python2.7/ctypes/init.py", line 365, in __init__self._handle = _dlopen(self._name, mode) OSError: libhello.so: cannot open shared object file: No such file or directory

と出てきます。

参考させて頂いたサイト様は

http://arit-clt.com/2014/11/19/pepper-pepper%E3%82%A2%E3%83%97%E3%83%AA%...

このサイトの中腹部分のソースをコピペ→import部分を上記LoadLibraryに変更

こちらも参考させて頂きました

http://backflip180.jp/tech/shared-library-with-python.html

import libhello や

test = cdll.LoadLibrary('./libhello.so')とPathを変更してもダメでした。

JavaプログラマーがPepperロボアプリ作成をしたら

見事にPythonボックスではまってしまいました。

皆様のお力をお貸しください。

トップに戻る