Project

General

Profile

バグ #4488

RTCBuilderでC++言語を指定した場合にRTCを生成できない

Added by n.kawauchi over 3 years ago. Updated over 3 years ago.

Status:
解決
Priority:
通常
Assignee:
-
Start date:
03/22/2018
Due date:
% Done:

100%

Estimated time:

Description

r818で生成したOpenRTPでC++コンポーネントを生成する際にエラーになります。
プロジェクト名「sample」で、言語指定だけC++とし、他はデフォルトのままコード生成すると、以下のエラーが出ます。

C++の生成に失敗しました。[test/src/ModuleNameTestComp.cpp]

ここで言語をPythonにすると生成されます。

History

#1 Updated by ga over 3 years ago

  • Assignee deleted (ga)

こちらの環境で試した所,正常にコード生成を行うことができました.
どのような環境で実行されておりますでしょうか?

#2 Updated by n.kawauchi over 3 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利用の予定です。

#3 Updated by ga over 3 years ago

Eclipse4.7では動作確認を行っておりませんので,こちらでは何とも言えません.

#4 Updated by n.kawauchi over 3 years ago

まだ不確かな確認なのですが・・・
リビジョン指定でチェックアウトし、Windows 32bitの全部入りパッケージを作成してC++ RTCを生成してみました。
r788はOKなのですが、r806はお伝えしているエラーになります。
確認環境はJenkinsのVM環境を自宅で動かしているので、微妙にEclipse SDKの状態が異なるとは思いますが、
バージョンは4.4.2指定でのビルドです。

#5 Updated by n.kawauchi over 3 years ago

確認したところ、#4433 の修正が原因に思えます。この修正が入る直前のr791では問題ありませんでした。
r795のソースで作成した全部入りパッケージを添付します。これでC++ RTCを作成するとエラーになります。
ご確認いただけますでしょうか。
eclipse442-openrtp120v20180323-ja-win32-r795.zip

#6 Updated by ga over 3 years ago

ご連絡,ご調査ありがとうございます.
添付して頂きました全部入りパッケージで動作確認を行った所,こちらでもエラーが発生いたしました.

ただ,RTCBuilderのjarファイルを解凍してみた所,r795で追加したはずのテンプレートファイルがjarファイル内に含まれておりませんでした.
(こちらで手動でビルドを行ったRTCBには含まれております.また念のためjp.go.aist.rtm.rtcbuilder.java, jp.go.aist.rtm.rtcbuilder.pythonにつきましても解凍してみたのですが,これらは追加したテンプレートファイルが含まれておりました)

「全部入りパッケージ」のビルド方法が不明なのですが,キャッシュに前のファイルが残ってしまっていたり,Eclipse本体に相当するものに更新が掛かっておらず,新しいファイルを認識できていなかったりしませんでしょうか?
ご確認を頂ければ幸いです.

#7 Updated by n.kawauchi over 3 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 の方に含まれていないのがまずいのでしょうか?
よろしくお願いいたします。

#8 Updated by ga over 3 years ago

jp.go.aist.rtm.rtcbuilder.nl1は,日本語化用プラグインですので今回の件とは関係ありません.

ご提示頂いたテンプレートファイルの内容なのですが,やはり必要なファイルが含まれておりません.
jp.go.aist.rtm.rtcbuilder\src\jp\go\aist\rtm\rtcbuilder\template配下が必要なテンプレートファイル群となります.

#9 Updated by n.kawauchi over 3 years ago

jarファイルに含めるべきテンプレートファイル群で不足があるということは、
新たに追加したファイルがあり、それらをjarファイルに加える定義が抜けているということですよね。
これは、rtmtools/jp.go.aist.rtm.rtcbuilder/build.xml の「target name="jar"」タグの修正が必要ということではないでしょうか。
追加されたファイルについては私は把握しておりませんので、対応、よろしくお願いいたします。

ところで、このテンプレートにより、新規作成のRTCにはかならずtestディレクトリも含まれるという仕様になったのでしょうか?

#10 Updated by ga over 3 years ago

build.xmlを修正させて頂きました r828

#11 Updated by n.kawauchi over 3 years ago

  • Status changed from 新規 to 解決
  • Target version set to RELEASE_1_2_0
  • % Done changed from 0 to 100

ありがとうございました。最新ソースにて、C++ RTCを生成できること確認しました。

Also available in: Atom PDF