[choreonoid-users-ja 00099] Re: プラグインを置くディレクトリについて

k-kojima (imi) k-kojima @ jsk.imi.i.u-tokyo.ac.jp
2013年 6月 16日 (日) 21:28:31 JST


中岡さん

東京大学の小島です。
ご返事ありがとうございます。

諸事情によりプラグインのチェックアウト先をextplugin以下に置くのではなく、
プラグインのディレクトリをchoreonoidとは関係のないところに置きたいので以下のやり方でやってみています。
> プラグインのディレクトリをchoroenoidとは関係ない別のところに置きたい場合
> については、以下のページを参照してください。
> http://choreonoid.org/ja/plugin-development/hello-world-sample.html#choreonoid
まず、試しにSample1Pluginでやってみたのですが、
choreonoid起動時に下記のようなメッセージが出てプラグインが読み込めません。

どのように対処すればよいでしょうか。

ちなみに、ソースファイルはそのままですが、Sample1Plugin/ManualMakefileのままだと
/usr/local/include/choreonoid-1.3/cnoid/src/Util/EigenTypes.h:8:22:
致命的エラー: Eigen/Core: そのようなファイルやディレクトリはありません
/usr/local/include/choreonoid-1.3/cnoid/src/Collision/ColdetModelPair.h:10:35:
致命的エラー: CollisionPairInserter.h: そのようなファイルやディレクトリはありません
/usr/bin/ld: Sample1Plugin.o: relocation R_X86_64_32 against `.bss'
can not be used when making a shared object; recompile with -fPIC
などのエラーが出てmakeが通らなかったので下記のように変更しました。

********************************************************************************************************************************
【choreonoid起動時のメッセージ】
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidBalancerPlugin.so"を読み込み中
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so"を読み込み中
プラグインの読み込みが出来ませんでした。
Cannot load library
/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so:
(/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so: undefined
symbol: _ZTIN5cnoid8BodyItemE)
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidHelloWorldPlugin.so"を読み込み中
HelloWorldプラグインが読み込まれました。
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidBodyPlugin.so"を読み込み中
Bodyプラグインが読み込まれました。
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidSimpleControllerPlugin.so"を読み込み中
SimpleControllerプラグインが読み込まれました。
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidPoseSeqPlugin.so"を読み込み中
PoseSeqプラグインが読み込まれました。
Balancerプラグインが読み込まれました。
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so"を読み込み中
プラグインの読み込みが出来ませんでした。
Cannot load library
/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so:
(/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so: undefined
symbol: _ZTIN5cnoid8BodyItemE)
プラグインファイル"/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so"を読み込み中
プラグインの読み込みが出来ませんでした。
Cannot load library
/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so:
(/usr/local/lib/choreonoid-1.3/libCnoidSample1Plugin.so: undefined
symbol: _ZTIN5cnoid8BodyItemE)

*****************************************************************************************************************************
【変更後のMakefile】
CXXFLAGS += `pkg-config --cflags choreonoid-body-plugin`
CXXFLAGS += `pkg-config --cflags eigen3`            (追加した行)
CXXFLAGS += -I`echo $(HOME)`/src/choreonoid-1.3.1/src/Collision (追加した行)
CXXFLAGS += -fPIC                       (追加した行)

PLUGIN = libCnoidSample1Plugin.so
SRC = Sample1Plugin.o

$(PLUGIN): $(SRC)
g++ -shared `pkg-config --libs choreonoid-body-plugin` -o $(PLUGIN) $(SRC)

install: $(PLUGIN)
install -s $(PLUGIN) `pkg-config --variable=plugindir choreonoid`
clean:
rm -f *.o *.so


2013年6月14日 17:44 中岡 慎一郎 <s.nakaoka @ aist.go.jp>:
>
> 小島さん
>
> 産総研の中岡です。
>
> まず、svn等でプラグインを別リポジトリで管理する場合も、そのリポジトリの
> チェックアウト先をextplugin以下に置くことで、問題ない場合が多いです。
> 私もそのようにしています。
>
> プラグインのディレクトリをchoroenoidとは関係ない別のところに置きたい場合
> については、以下のページを参照してください。
> http://choreonoid.org/ja/plugin-development/hello-world-sample.html#choreonoid
>
>
> (06/14/13 15:36), k-kojima (imi) wrote:
>> 東京大学の小島です
>>
>> 公式ホームページのプラグインの説明に
>> 「まず、プラグイン用の追加のソースを置くディレクトリは、Choreonoidソースの”extplugin”ディレクトリとしています。
>> 従って、まずこのディレクトリ以下に追加プラグイン用のサブディレクトリを作成し、そこにプラグインのソースやビルド設定を記述したCMakeLists.txtを格納するようにしてください。」
>> とありますが、
>> 開発するにあたって、svn等でプラグインソースを管理するため、プラグインのディレクトリをchoroenoidとは関係ない別のところに置きたい思います。
>>
>> プラグインの開発経験が浅く、一般的にどうするべきなのか分かりません。
>> プラグインを開発している方々はどのように管理していらっしゃるのでしょうか。
>> また、choreonoidのcmake等で設定すれば可能なのでしょうか。
>>
>> よろしくお願いいたします。
>>
>> --
>> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>> 東京大学 大学院
>> 情報理工学系研究科 知能機械情報学専攻
>> 小島 邦生 (KOJIMA KUNIO)
>> k-kojima @ jsk.imi.i.u-tokyo.ac.jp
>> Tel 03-5841-7416
>> Fax 03-5841-6285
>> 携帯 090-4501-5285
>> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>> _______________________________________________
>> choreonoid-users-ja mailing list
>> choreonoid-users-ja @ choreonoid.org
>> https://choreonoid.org/mailman/listinfo/choreonoid-users-ja
>>
>
>
> --
> 中岡 慎一郎 <s.nakaoka @ aist.go.jp>
> 産業技術総合研究所 知能システム研究部門
> ヒューマノイド研究グループ
> Phone: 029-861-5161  Fax: 029-862-6519
> _______________________________________________
> choreonoid-users-ja mailing list
> choreonoid-users-ja @ choreonoid.org
> https://choreonoid.org/mailman/listinfo/choreonoid-users-ja



--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
東京大学 大学院
情報理工学系研究科 知能機械情報学専攻
小島 邦生 (KOJIMA KUNIO)
k-kojima @ jsk.imi.i.u-tokyo.ac.jp
Tel 03-5841-7416
Fax 03-5841-6285
携帯 090-4501-5285
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


choreonoid-users-ja メーリングリストの案内