バグ #4488
未完了RTCBuilderでC++言語を指定した場合にRTCを生成できない
100%
説明
r818で生成したOpenRTPでC++コンポーネントを生成する際にエラーになります。
プロジェクト名「sample」で、言語指定だけC++とし、他はデフォルトのままコード生成すると、以下のエラーが出ます。
C++の生成に失敗しました。[test/src/ModuleNameTestComp.cpp]
ここで言語をPythonにすると生成されます。
ファイル
n.kawauchi さんがほぼ7年前に更新
Eclipse oxygen(4.7.2)ベースの全部入りパッケージ、これをインストーラに組み込んだOpenRTPでの動作確認です。
C++以外のPython(プロジェクト名:sample_py)とJava(プロジェクト名:sample_java)はRTCが生成されますが、
よく確認するとプロジェクト下にtestディレクトリも生成されています。
プロジェクト作成後、言語指定とコード生成のみで、他はデフォルト設定のままです。
sample_py └─test ModuleNameTest.py --- sample_java │ └─test └─src ModuleNameTest.java ModuleNameTestComp.java ModuleNameTestImpl.java
スクリプトは、build_allに続き、make_packagesを実行しています。
ネットワーク限定環境にてプラグイン等の不足分をビルド中にダウンロードすることができないので、
eclipse modeling oxygenをベースとして使っています。ネットワーク回復後はSDK利用の予定です。
n.kawauchi さんが6年以上前に更新
まだ不確かな確認なのですが・・・
リビジョン指定でチェックアウトし、Windows 32bitの全部入りパッケージを作成してC++ RTCを生成してみました。
r788はOKなのですが、r806はお伝えしているエラーになります。
確認環境はJenkinsのVM環境を自宅で動かしているので、微妙にEclipse SDKの状態が異なるとは思いますが、
バージョンは4.4.2指定でのビルドです。
n.kawauchi さんが6年以上前に更新
- ファイル eclipse442-openrtp120v20180323-ja-win32-r795.zip eclipse442-openrtp120v20180323-ja-win32-r795.zip を追加
確認したところ、#4433 の修正が原因に思えます。この修正が入る直前のr791では問題ありませんでした。
r795のソースで作成した全部入りパッケージを添付します。これでC++ RTCを作成するとエラーになります。
ご確認いただけますでしょうか。
eclipse442-openrtp120v20180323-ja-win32-r795.zip
ga さんが6年以上前に更新
ご連絡,ご調査ありがとうございます.
添付して頂きました全部入りパッケージで動作確認を行った所,こちらでもエラーが発生いたしました.
ただ,RTCBuilderのjarファイルを解凍してみた所,r795で追加したはずのテンプレートファイルがjarファイル内に含まれておりませんでした.
(こちらで手動でビルドを行ったRTCBには含まれております.また念のためjp.go.aist.rtm.rtcbuilder.java, jp.go.aist.rtm.rtcbuilder.pythonにつきましても解凍してみたのですが,これらは追加したテンプレートファイルが含まれておりました)
「全部入りパッケージ」のビルド方法が不明なのですが,キャッシュに前のファイルが残ってしまっていたり,Eclipse本体に相当するものに更新が掛かっておらず,新しいファイルを認識できていなかったりしませんでしょうか?
ご確認を頂ければ幸いです.
n.kawauchi さんが6年以上前に更新
ご確認、ありがとうございます。
こちらで作成している「全部入りパッケージ」ですが、ソースのリビジョンを指定して作成しているため、
その都度、新しいディレクトリを作成後にチェックアウトし、ビルドしています。
ビルドスクリプトはソースのrtmtools直下にあり、build_all(build_plugins, build_plugins) -> make_packages の順に実行しています。
jarファイルにテンプレートファイルが含まれているかどうかの確認は、jar tf コマンドで確認しました。
C++の場合は、jp.go.aist.rtm.rtcbuilder_1.2.0.v20180323.jar には以下が含まれています。
jp/go/aist/rtm/rtcbuilder/template/cpp/CXX_Comp.cpp.vsl jp/go/aist/rtm/rtcbuilder/template/cpp/CXX_RTC.cpp.vsl :
jp.go.aist.rtm.rtcbuilder.nl1_1.2.0.v20180323.jar の方に含まれていないのがまずいのでしょうか?
よろしくお願いいたします。
n.kawauchi さんが6年以上前に更新
jarファイルに含めるべきテンプレートファイル群で不足があるということは、
新たに追加したファイルがあり、それらをjarファイルに加える定義が抜けているということですよね。
これは、rtmtools/jp.go.aist.rtm.rtcbuilder/build.xml の「target name="jar"」タグの修正が必要ということではないでしょうか。
追加されたファイルについては私は把握しておりませんので、対応、よろしくお願いいたします。
ところで、このテンプレートにより、新規作成のRTCにはかならずtestディレクトリも含まれるという仕様になったのでしょうか?
n.kawauchi さんが6年以上前に更新
- ステータス を 新規 から 解決 に変更
- 対象バージョン を RELEASE_1_2_0 にセット
- 進捗率 を 0 から 100 に変更
ありがとうございました。最新ソースにて、C++ RTCを生成できること確認しました。