バグ #4488
openRTCBuilderでC++言語を指定した場合にRTCを生成できない
100%
Description
r818で生成したOpenRTPでC++コンポーネントを生成する際にエラーになります。
プロジェクト名「sample」で、言語指定だけC++とし、他はデフォルトのままコード生成すると、以下のエラーが出ます。
C++の生成に失敗しました。[test/src/ModuleNameTestComp.cpp]
ここで言語をPythonにすると生成されます。
Files
Updated by ga almost 7 years ago
- Assignee deleted (
ga)
こちらの環境で試した所,正常にコード生成を行うことができました.
どのような環境で実行されておりますでしょうか?
Updated by n.kawauchi almost 7 years ago
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利用の予定です。
Updated by n.kawauchi almost 7 years ago
まだ不確かな確認なのですが・・・
リビジョン指定でチェックアウトし、Windows 32bitの全部入りパッケージを作成してC++ RTCを生成してみました。
r788はOKなのですが、r806はお伝えしているエラーになります。
確認環境はJenkinsのVM環境を自宅で動かしているので、微妙にEclipse SDKの状態が異なるとは思いますが、
バージョンは4.4.2指定でのビルドです。
Updated by n.kawauchi almost 7 years ago
- File eclipse442-openrtp120v20180323-ja-win32-r795.zip eclipse442-openrtp120v20180323-ja-win32-r795.zip added
確認したところ、#4433 の修正が原因に思えます。この修正が入る直前のr791では問題ありませんでした。
r795のソースで作成した全部入りパッケージを添付します。これでC++ RTCを作成するとエラーになります。
ご確認いただけますでしょうか。
eclipse442-openrtp120v20180323-ja-win32-r795.zip
Updated by ga almost 7 years ago
ご連絡,ご調査ありがとうございます.
添付して頂きました全部入りパッケージで動作確認を行った所,こちらでもエラーが発生いたしました.
ただ,RTCBuilderのjarファイルを解凍してみた所,r795で追加したはずのテンプレートファイルがjarファイル内に含まれておりませんでした.
(こちらで手動でビルドを行ったRTCBには含まれております.また念のためjp.go.aist.rtm.rtcbuilder.java, jp.go.aist.rtm.rtcbuilder.pythonにつきましても解凍してみたのですが,これらは追加したテンプレートファイルが含まれておりました)
「全部入りパッケージ」のビルド方法が不明なのですが,キャッシュに前のファイルが残ってしまっていたり,Eclipse本体に相当するものに更新が掛かっておらず,新しいファイルを認識できていなかったりしませんでしょうか?
ご確認を頂ければ幸いです.
Updated by n.kawauchi almost 7 years ago
ご確認、ありがとうございます。
こちらで作成している「全部入りパッケージ」ですが、ソースのリビジョンを指定して作成しているため、
その都度、新しいディレクトリを作成後にチェックアウトし、ビルドしています。
ビルドスクリプトはソースの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 の方に含まれていないのがまずいのでしょうか?
よろしくお願いいたします。
Updated by ga almost 7 years ago
jp.go.aist.rtm.rtcbuilder.nl1は,日本語化用プラグインですので今回の件とは関係ありません.
ご提示頂いたテンプレートファイルの内容なのですが,やはり必要なファイルが含まれておりません.
jp.go.aist.rtm.rtcbuilder\src\jp\go\aist\rtm\rtcbuilder\template配下が必要なテンプレートファイル群となります.
Updated by n.kawauchi almost 7 years ago
jarファイルに含めるべきテンプレートファイル群で不足があるということは、
新たに追加したファイルがあり、それらをjarファイルに加える定義が抜けているということですよね。
これは、rtmtools/jp.go.aist.rtm.rtcbuilder/build.xml の「target name="jar"」タグの修正が必要ということではないでしょうか。
追加されたファイルについては私は把握しておりませんので、対応、よろしくお願いいたします。
ところで、このテンプレートにより、新規作成のRTCにはかならずtestディレクトリも含まれるという仕様になったのでしょうか?
Updated by n.kawauchi almost 7 years ago
- Status changed from 新規 to 解決
- Target version set to RELEASE_1_2_0
- % Done changed from 0 to 100
ありがとうございました。最新ソースにて、C++ RTCを生成できること確認しました。