[openrtm-users 00212] Re: rtc-templateの--idl-includeについて
Ando Noriaki
n-ando @ aist.go.jp
2007年 10月 9日 (火) 10:48:09 JST
小島様
産総研 安藤です
> rtc-templateの-idl-includeオプションについてですが、
> rtc-templateのhelpには、idlファイルをコンパイルするとき
> 探すパスと書いてあるのですが、使い方を間違えているのか、
> 機能してくれません。
--idl-includeオプションは、IDLから実装ファイル (*SVC_impl.[cpp|h]) を
作成するときにIDLのプリプロセッサに渡すオプションです。
Cコンパイラの-Iオプションのようなものと思っていただいて構いません。
つまり、以下のようなIDLファイルをサービスのIDLとして指定したい場合、
#include <MyService.idl>
interface MyService2
: MyService
{
void new_operation();
};
--idl-includeに渡したパスから、MyService.idlを探すようにプリプロセッサに
指示するためのオプションです。
従って、--service-idl, --consumer-idl に渡すIDLファイルを--idl-includeに渡した
パスから探してくれるわけではありません。
--service-idlおよび--consumer-idlに渡すIDLファイルはカレントに置くか、
フルパスで指定してください。
また、現状のrtc-templateが生成するMakefileは上記のような、指定したIDLファイルが
他のIDLを参照するようなIDLファイルのコンパイルには対応しておりませんので、
そういった場合にはMakefileを修正する必要があります。
なお、このオプションは現状バグがあってうまく動きません。
以下のパッチを宛てると動くようになります。
---ここから
Index: rtc-template
===================================================================
RCS file: /export/pub/cvsroot/OpenRTM-aist/utils/rtc-template/rtc-template,v
retrieving revision 1.8.2.2
diff -u -r1.8.2.2 rtc-template
--- rtc-template 23 Jul 2007 08:06:27 -0000 1.8.2.2
+++ rtc-template 9 Oct 2007 01:20:25 -0000
@@ -675,7 +675,7 @@
'corbaport': MakeCorbaPort(opts),
'service_idl': MakeServiceIDL(opts),
'consumer_idl': MakeConsumerIDL(opts),
- 'idl_include': find_opt_list(opts, "--idl-include", idl_inc),
+ 'idl_include': find_opt_list(opts, "idl-include", idl_inc),
'fname': output,
'args': sys.argv,
'fmtd_args': fmtd_args(70, sys.argv)
---ここまで
> 行った作業としては、一つ上のディレクトリにある hoge というディレクトリに
> idl ファイルを置き、以下のようにコマンドを打ちました。
>
> rtc-template --idl-include=../hoge/
> (他のオプションは省略しまています)
>
> しかし、同じディレクトリにないためか、実行することができませんでした。
> そこで、Makefileに影響があるのかと思っていたのですが、
> 影響もないようです。
> また、rtc-templateによって生成されるcppファイルにも影響がないようです。
>
> このオプションはどこに反映されるものなのでしょうか?
>
> また、あるディレクトリをプロジェクトのidlを集めそこから参照する形にしたい
> のですが、作成する際、rtc-templateのオプションで解決できる方法がございましたらお教えください。
というわけですので、参照したいIDLファイルはフルパスで指定してください。
--
安藤慶昭@独立行政法人産業技術総合研究所 研究員
知能システム研究部門 タスクインテリジェンス研究グループ
〒305-8568 茨城県つくば市梅園1-1-1 中央第2
TEL: 029-861-5981 FAX: 029-861-5971
n-ando @ aist.go.jp, n-ando @ ieee.org
openrtm-users メーリングリストの案内