[openrtm-staff:1010] 10/6の作業報告(河内)

河内のぶ n.kawauchi @ aist.go.jp
2017年 10月 6日 (金) 19:13:55 JST


安藤様

河内です

本日の作業内容をお知らせします。
------------
■OpenRTM-aistのmake distがJenkinsジョブで失敗している件の調査
・Makefile.amで定義しているfluent-bitのgit cloneを単体で実行して
 同じエラーを確認
・10/2のJenkinsビルドはOKだったので、fluent-bitのコミット履歴を確認
 してみたところ、10/2以降、20回くらいコミットされていて、最新の
 コミットも失敗している状態を確認
・修正中のようなので、様子を見ることになった

・一応、10/2のリビジョンでビルドできるか試したところOKだった
$ git clone https://github.com/fluent/fluent-bit.git
$ cd fluent-bit/
$ git checkout 767c64ce3b7e0519c0ca679d8d8c1302c24e1cc8
$ cd build
$ cmake ..
$ make
OK

■OpenRTM-aist 1.2.0インストーラ 10/6版を生成
http://staging.openrtm.org/pub/Windows/OpenRTM-aist/1.2.0/
・PythonとJavaはtrunk修正をbranches/RELENGE_1_2へマージしてmsmを生成
・VCVerChangerもテストでOKとなったバイナリを使用

■OpenRTM-aistのカスタムセットアップで、Pythonのみ選択した環境で
必要になるランタイムについて
・msvcr**.dll, msvcp**.dll
・原さんからうかがって確認したこと
-----
◎まっさらなOS環境(Visual StudioやOpenRTM-aistなどを一度も
 インストールしていない)へ、OpenRTM-aistのカスタムセットアップで
 Pythonのみインストールする。この環境でomniORBpyのインポートがエラー
 になる、ということを伺った。

⇒・ランタイムdllのインストールが必要
 ・トラブルシューティングではmsvcr71.dll, msvcp71.dllについて書いてある
http://www.openrtm.org/openrtm/ja/node/1190/#toc48
http://www.openrtm.org/openrtm/ja/node/1190/#toc49

 ・現在のOpenRTM-aist-Pythonのマージモジュールは
  omni***_vc14_rt.dll というようにvc14のものがインストールされるので、
  msvcr140.dll, msvcp140.dll が必要になる。

------ 補足
・omniORB4.2.2から、omniORBpyもソースビルドを行うようになったので
 vc14以外のdllも生成済み。Pythonはvcバージョンに関係なく32bitと64bit
 の2つのマージモジュールしか作成しない。
・omniORB4.2.1で提供されていたバイナリがvc14だったので、Jenkinsの
 VM環境をvc2015を指定して実行しているので、vc14のdllになっているだけ。
 よって他のvcバージョンのdllでもOK.
------------

・vc14の場合、ユーザには下記再配布可能パッケージのダウンロードページ
 から、32bit用、64bit用のどちらもインストールしてもらうように勧める

「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ」
https://www.microsoft.com/ja-jp/download/details.aspx?id=48145

<確認環境1>
・Windows10
  ⇒英語版OSを使ったので、Windows updateと日本語化しかしていない
・Python2.4.14 + OpenRTM-aist 1.2.0(各32bit版)
  ⇒OpenRTM-aistはカスタムセットアップでPythonのみインストール
-----
>python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import omniORB
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\omniORB\__init__.py", line 44, in <module>
    import _omnipy
ImportError: DLL load failed: ???????????????????
>>>
-----

⇒・System32の下にあるもの
  msvcp_win.dll, msvcp60.dll, msvcp110_win.dll, msvcp120_clr0400.dll
    msvcr100_clr0400.dll, msvcr120_clr0400.dll

 ・SysWOW64の下にあるもの
  System32の設定に加え、msvcr71.dllがある

⇒・32bit版のランタイムをインストールする vc_redist.x86.exe
 ・この後、import omniORB 動作OK!

<確認環境2>
・Windows10 + vc2017 インストール
・OpenRTM-aist 1.2.0版テストのため、インストール・アンインストールを
 繰り返している
・OpenRTM-aistはカスタムセットアップでPythonのみインストール
   →import omniORB  OK!

⇒・System32の下にあるもの
  msvcp(60,100,110,120,140).dll、msvcr(100,110,120).dll
    (バージョンの数字の後に「_clr0400」等が付くものは除く)
 ・SysWOW64の下にあるもの
  System32の設定に加え、msvcr71.dllがある

■rtcd_python.batが変更になったので、exe化し直す必要がある
・rtcd_python.bat⇒rtcd_python.exeに変換するのだが、前回使用した
 VisualBatを使うとうまく行かない
・「%CD%」から「%~dp0」でのパス指定に変わったので動かない
・改めて調査する予定

・Windows Defenderでマルウエアとみなされ、変換ソフトをVisualBatへ
変更した経緯がある
http://redmine.openrtm.org/issues/3573

以上です。

---------------------------------------------------
河内 のぶ  n.kawauchi @ aist.go.jp
産業技術総合研究所 ロボットイノベーション研究センター
ロボットソフトウエアプラットフォーム研究チーム
テクニカルスタッフ



More information about the openrtm-staff mailing list