OpenRTM は 32bit をインストールしているのに、CMake でコンパイラを 64bit に指定しているなど、アーキテクチャを合わせていない可能性があります。 アーキテクチャを合わせてから実行する必要があります。
openrtm.org が提供する msi インストーラーには omniORB が含まれていますが、手動でインストールした場合には、omniORB が入っていない場合も考えられますので、omniORB がインストールされているか確認してください。
「Start Naming Service」は %RTM_ROOT%\bin\rtm-naming.bat にあるバッチファイルからネームサーバー (omniNames.exe) を起動します。 この際、omniNames.exe を参照するために環境変数 OMNI_NAMES を利用しています。 通常インストーラーで OpenRTM-aist をインストールした場合には、OMNI_ROOT 環境変数が自動で設定されますが、何らかの理由で環境変数が無効になったり、手動でインストールした場合は、環境変数が設定されていないことがあります。
環境変数 OMNI_ROOT が設定されていることを確認してください環境変数 TEMP を2バイト文字を含まない場所に設定することで改善する場合があります。 適当なテンポラリフォルダー (以下のケースでは C:\temp) を作成し、そこを環境変数 TEMP が指すように、rtm-naming.bat の先頭部分で以下のように設定します。
set cosnames="omninames" set orb="omniORB" set port=%1 rem set OMNIORB_USEHOSTNAME=localhost set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32 set TEMP=C:\temp
また、稀なケースですが、ホスト名やアドレスの設定の問題で、起動できないことがあります。 その場合、利用している PC の IPアドレス を omniNames.exe に設定する必要があります。 環境変数 OMNIORB_USEHOSTNAME を以下のように設定します (以下は自ホストの IPアドレスが 192.168.0.11 の場合の例)。
set cosnames="omninames" set orb="omniORB" set port=%1 set OMNIORB_USEHOSTNAME=192.168.0.11 set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32
corba.nameservers: localhost
CMake 実行時に以下のエラーが発生する。
No CMAKE_CXX_COMPILER could be found.
まずは、<プロジェクトディレクトリー>/<buildディレクトリー>/CMakeFiles/CMakeError.log を確認してください。
CMake を実行 (Configure) する際に、コンパイラをしてします。インストールされている Visual Studio とは異なるコンパイラを指定した場合には、コンパイラが見つからず、No CMAKE_CXX_COMPILER could be found. のようなエラーが発生します。
CMakeError.log を見ると、以下のように、コンパイラチェック開始直後にエラーが発生します。
Microsoft (R) Build Engine バージョン 4.6.1586.0 [Microsoft .NET Framework、バージョン 4.0.30319.42000] Copyright (C) Microsoft Corporation. All rights reserved. 2017/04/08 10:47:04 にビルドを開始しました。 ノード 1 上のプロジェクト "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット)。 C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj(18,3): error MSB4019: インポートされたプロジェクト "C:\Microsoft.Cpp.Default.props" が見つかりませんでした。<Import> 宣言のパスが正しいかどうか、およびファイルがディスクに存在しているかどうかを 確認してください。 プロジェクト "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット) のビルドが終了しました -- 失敗。 ビルドに失敗しました。 "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット) (1) -> C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj(18,3): error MSB4019: インポートされたプロジェクト "C:\Microsoft.Cpp.Default.props" が見つかりませんでした。 <Import> 宣言のパスが正しいかどうか、およびファイルがディスクに存在しているかどうかを 確認してください。 0 個の警告 1 エラー 経過時間 00:00:00.50
Visual Studio インストール時に、C++コンパイラを含む Visual C++ がインストールされていない場合があります。
再度インストーラーを(手元になければダウンロードしてから)起動し、[変更] からインストールを行います。 インストールをカスタマイズするを選択して、インストール対象に Visual C++ が含まれていることを確認してからインストールを行います。
この原因の場合も、CMakeError.log の出力内容は(原因1)と同じです。
まれに、インストールされているコンパイラを CMake 実行時に正しく指定しているのにもかかわらず、No CMAKE_CXX_COMPILER could be found. のようなエラーが発生することがあります。 原因の一つとして、複数のバージョンの Visual Studio をインストール・アンインストール等を行った際に、まれにツールチェーンの設定に不整合が生じ、以下のようなエラー rc.exeが実行できない が発生することがあります。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\CL.exe /c /nologo /W0 /WX- /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\" /Fd"Debug\vc140.pdb" /Gd /TC /errorReport:queue CMakeCCompilerId.c CMakeCCompilerId.c Link: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdC.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdC.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdC.lib" /MACHINE:X64 Debug\CMakeCCompilerId.obj LINK : fatal error LNK1158: 'rc.exe' を実行できません。 [C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj] プロジェクト "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット) のビルドが終了しました -- 失敗。 ビルドに失敗しました。
これに対する対処方法としては、rc.exe と rcdll.dll を対象コンパイラのツールディレクトリーにコピーする方法があります。
rtm-naming.bat を実行しても黒い窓(コマンドプロンプト画面)が一瞬開いて閉じてしまう。
omniNames.exe -start 2809 -logdir %TEMP%
通常環境変数 %TEMP% はユーザーのテンポラリディレクトリー
C:\Documents and Settings\ユーザー名\Local Settings\Temp
%cosnames% -start %port% -logdir %TEMP%\
%cosnames% -start %port% -logdir [パスに日本語を含まないログディレクトリー]
> ls -al run.sh -rw-r--r-- 1 n-ando n-ando 1146 4 27 15:12 run.sh > chmod 755 run.sh > ./run.sh もしくは > sh run.sh