ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
C++版のRTCをインストールすると/usr/local/components/libにインストールされるのは前から言っている通りですが、Python版の場合は
/usr/share/openrtm-1.1/components/python/RTC名バージョン番号
にインストールされるみたいですね。
これだけインストールされる場所が違うと分かりづらいとは思いました。
あとサービスポートを使ったRTCでmake installと入力したときに、C++版では前回の記事のようにCMakeLists.txtの編集が必要になるわけですが、Python版でもそのままではインストールさせてくれません。
サービスポートを使った場合IDLファイルが/usr/share/openrtm-1.1/components/python/RTC名バージョン名/srcにコピーされるみたいなのですが、何故かIDLファイルをidlフォルダではなく直下のフォルダから探してしまいます。
なのでidlフォルダにあるIDLファイルを一つ上のディレクトリにコピーしておいてください。
あとmakeと入力すればIDLファイルをコンパイルできるはずですが、これもIDLファイルを直下のフォルダから探します。通常通りidlcompile.shを使えばIDLファイルのコンパイルはできるので問題はないのですが、こちらでやりたい人は同じように直下のフォルダにIDLファイルをコピーしてください。
ということを考えると、どうにも直下のフォルダのCMakeLists.txtが怪しいですね。
そう思ってCMakeLists.txtを読んでみると、そもそもPython版ではidlフォルダのCMakeLists.txtは使っていないみたいです。
まずは、
という感じでIDL_FILESという変数にIDLファイルの名前を入力します。
そして以下のコードでインストールするように指定しているみたいです。
ここでインストールするファイルは先ほど指定したIDL_FILESをそのまま指定しているためidlフォルダではなく直下のフォルダからIDLファイルを探してしまったみたいです。
IDLのコンパイルするときも同じです。
つまり変数IDL_FILESを指定するところで、
と修正すればインストールもIDLコンパイルも出来るようになるはずです。
・・・と思いきやインストールは成功しましたけど、makeでIDLのコンパイルをすると何故かbinという名前のフォルダにファイルが生成されてしまいます。まあ別にidlcompile.shを使えば良いので全く問題はないのですが、気になる人はメーリングリストで報告でもしてください。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
/usr/share/openrtm-1.1/components/python/RTC名バージョン番号
にインストールされるみたいですね。
これだけインストールされる場所が違うと分かりづらいとは思いました。
あとサービスポートを使ったRTCでmake installと入力したときに、C++版では前回の記事のようにCMakeLists.txtの編集が必要になるわけですが、Python版でもそのままではインストールさせてくれません。
サービスポートを使った場合IDLファイルが/usr/share/openrtm-1.1/components/python/RTC名バージョン名/srcにコピーされるみたいなのですが、何故かIDLファイルをidlフォルダではなく直下のフォルダから探してしまいます。
なのでidlフォルダにあるIDLファイルを一つ上のディレクトリにコピーしておいてください。
あとmakeと入力すればIDLファイルをコンパイルできるはずですが、これもIDLファイルを直下のフォルダから探します。通常通りidlcompile.shを使えばIDLファイルのコンパイルはできるので問題はないのですが、こちらでやりたい人は同じように直下のフォルダにIDLファイルをコピーしてください。
- C++版ではIDLファイルのコピーが問題なくできる
- idl/CMakeLists.txtの内容はC++、Python版どちらも同じ
ということを考えると、どうにも直下のフォルダのCMakeLists.txtが怪しいですね。
そう思ってCMakeLists.txtを読んでみると、そもそもPython版ではidlフォルダのCMakeLists.txtは使っていないみたいです。
まずは、
set(IDL_FILES ""
test.idl
)
という感じでIDL_FILESという変数にIDLファイルの名前を入力します。
そして以下のコードでインストールするように指定しているみたいです。
install(FILES ${IDL_FILES} ${EXEC_FILES} ${OTHER_SRCS}
DESTINATION "${INSTALL_PREFIX}/src"
COMPONENT "sources")
ここでインストールするファイルは先ほど指定したIDL_FILESをそのまま指定しているためidlフォルダではなく直下のフォルダからIDLファイルを探してしまったみたいです。
IDLのコンパイルするときも同じです。
つまり変数IDL_FILESを指定するところで、
set(IDL_FILES ""
idl/test.idl
)
と修正すればインストールもIDLコンパイルも出来るようになるはずです。
・・・と思いきやインストールは成功しましたけど、makeでIDLのコンパイルをすると何故かbinという名前のフォルダにファイルが生成されてしまいます。まあ別にidlcompile.shを使えば良いので全く問題はないのですが、気になる人はメーリングリストで報告でもしてください。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする