ページ

2013年9月23日月曜日

Ubuntu 12.04 LTS amd64環境でのFindOpenRTM.cmakeのエラーについて

Ubuntu 12.04 LTS amd64 環境で、
OpenRTMを利用したいと思いpkg_install_ubuntu.shを用いてインストールしました。
OpenRTPには1.1.0RC4のLinux版x86_64を利用しています。

しかし、RTCBuilderの出力したコードをCMakeでEclipseCDTのプロジェクトに変換する際に、以下のようなエラーが発生してしまいます。

CMake Error at cmake/Modules/FindOpenRTM.cmake:75 (file):
file STRINGS file
"/home/cgs/rtcomponents/test2/OPENRTM_INCLUDE_DIR-NOTFOUND/rtm/version.h"
cannot be read.
Call Stack (most recent call first):
CMakeLists.txt:54 (find_package)

CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE):
Could NOT find OpenRTM (missing: OPENRTM_INCLUDE_DIR COIL_INCLUDE_DIR
OPENRTM_LIBRARY COIL_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindOpenRTM.cmake:101 (find_package_handle_standard_args)
CMakeLists.txt:54 (find_package)

CMakeLists.txtを覗いてみたのですが、1番目のエラーはFindOpenRTM.cmakeのfind_pathに失敗していることが原因のようです。
FindOpenRTM.cmakeが見つからない場合には、${PROJECT_SOURCE_DIR}/cmake/Modules/FindOpenRTM.cmakeが代わりに利用されるようになっており、そこで2番目のエラーが発生してしまっているようです。

--

回避方法としては、 プロジェクトディレクトリのルートにあるCMakeLists.txtの、
find_package(OpenRTM)の前にset(OpenRTM_DIR "/usr/lib64/openrtm-1.1/cmake")を加え、/usr/lib64/openrtm-1.1/cmake /FindOpenRTM.cmakeを利用することでエラーを回避することが可能です。

※本来はプロジェクトディレクトリのFindOpenRTM.cmakeが代わりに利用されてうまいこといくはずなのですが、64bit環境下ではどうもうまく動作していないみたいです… 

0 件のコメント:

コメントを投稿