[choreonoid-users-ja 00036] Re: [MacOSX] build error in MultiAffine3Seq.cpp

Yuki Suga ysuga @ ysuga.net
2012年 7月 22日 (日) 21:25:40 JST


中岡様:
お世話になります.菅です.

> すみません、boostのSequenceというものが如何なるものかググってみたのです
> が、ざっとみたところでは該当するものが見つけられませんでした。

エラーメッセージなどを見たところ,
{boost_root}/boost/concept_check.hppで定義されているクラスのようです.
内部で利用されているんでしょうか・・・公式ドキュメントには記述がありませんが,
僕の環境boost1.50+MacOSX Lion+Xcode4.3.3ではコンパイルエラーになりました.
エラーはこの通りです.

/Users/ysuga/Development/choreonoid-1.2.0-dirty/src/Util/MultiAffine3Seq.cpp:160:31:
error: reference to 'Sequence' is ambiguous
static void readAffine3(const Sequence& node, Affine3& out_value)
                              ^
/usr/local/boost_1_50_0/boost/concept_check.hpp:813:17: note:
candidate found by name lookup is 'boost::Sequence'
  BOOST_concept(Sequence,(S))
                ^
/usr/local/boost_1_50_0/boost/concept/detail/concept_def.hpp:45:12:
note: expanded from macro 'BOOST_concept'
    struct name
           ^
/Users/ysuga/Development/choreonoid-1.2.0-dirty/src/Util/ValueTree.h:401:24:
note: candidate found by name lookup is 'cnoid::Sequence'
    class CNOID_EXPORT Sequence : public Collection


この部分にcnoid::Sequenceとネームスペースを指定してコンパイルしたところ,
boost1.50ではビルドエラーになりました.
ただ,コンパイルを進めるとFileSystem関連でエラーが出たようで,
そちらのエラーメッセージはこちらです.

In file included from
/Users/ysuga/Development/choreonoid-1.2.0-dirty/src/Util/FileUtil.cpp:6:
In file included from
/Users/ysuga/Development/choreonoid-1.2.0-dirty/src/Util/FileUtil.h:9:
In file included from /usr/local/boost_1_50_0/boost/filesystem.hpp:15:
/usr/local/boost_1_50_0/boost/filesystem/config.hpp:16:5: error:
#error Compiling Filesystem version 3 file with
BOOST_FILESYSTEM_VERSION defined != 3
#   error Compiling Filesystem version 3 file with
BOOST_FILESYSTEM_VERSION defined != 3
    ^
1 error generated.
make[2]: *** [src/Util/CMakeFiles/CnoidUtil.dir/FileUtil.cpp.o] Error 1
make[1]: *** [src/Util/CMakeFiles/CnoidUtil.dir/all] Error 2

boostを1.49に変えたところエラーが起こらずにビルド出来ました.


今はBalancerPluginを組み込んだところで下記のエラーが出ているので,
Choreonoid自体の使い方を勉強しながら入門してます(笑)

Cannot load library
/usr/local/lib/choreonoid-1.2/libCnoidBalancerPlugin.dylib:
(dlopen(/usr/local/lib/choreonoid-1.2/libCnoidBalancerPlugin.dylib,
5): Library not loaded:
/Users/nakaoka/choreonoid/lib/choreonoid-1.2/libCnoidBodyPlugin.dylib
  Referenced from: /usr/local/lib/choreonoid-1.2/libCnoidBalancerPlugin.dylib
  Reason: image not found)

とりあえずは,Sequenceの名前空間の件についてご確認いただきたいのと,
boostのバージョンに関するエラーに関しても重ねてご報告さし上げました.

今後はプラグイン開発を行っていく予定です.

ではでは


2012年7月22日 20:00 Shin'ichiro Nakaoka <s.nakaoka @ aist.go.jp>:
>
> 菅さん
>
> こんにちは、産総研の中岡です。
> エラー報告ありがとうございます。
>
> すみません、boostのSequenceというものが如何なるものかググってみたのです
> が、ざっとみたところでは該当するものが見つけられませんでした。
> boostのどのバージョンをお使いで、Sequenceという名前がどのモジュールで定
> 義されているかについて、分かる範囲で教えていただけますでしょうか。
> できれば、エラーメッセージもあるとうれしいです。
>
>> これはどちらをお使いですか?(おそらくcnoid側かと・・・)
>
> はい、これはcnoidで定義されている方を想定しています。
>
> ついでに説明しますと、cnoid::Sequenceというのは以前のバージョンで
> YamlSequence として定義していたものです。
> 今回、名前をSequenceに変更しました。
> その理由は、
>
> ・このクラスや他の関連クラス(Mapping等)は、必ずしもYAMLに依存するもので
> はなく、YAMLとは独立した汎用的なデータ構造として使えるものであるため。
>
> ・コレオノイドで頻繁に使うクラスなので、上の背景と併せて、コンパクトな名
> 前で使えた方がうれしいため。
>
> というところにあります。
>
> もちろん、あまり名前をころころ変えるのはよくないのですが、
> 今回の変更は、CMakeのCNOID_ENABLE_BACKWARD_COMPATIBILITY を ON にしてお
> くと(デフォルトでONになってます)、以前と同じヘッダとクラス名も使えるよ
> うにしてあります。
> ただ、プラグイン開発においては、なるべくこのスイッチをOFFにして、新しい
> 方に対応させておいてもらえるとうれしいです。
>
> ただ、やはりSequenceという名前にしてしまうと、衝突の危険性が高かったかも
> しれません。このあたり、記述の簡潔さとのバランスが難しいところですが…。
>
> 以上よろしくお願いいたします。
>
> (07/21/12 18:28), Yuki Suga wrote:
>> Choreonoid MLの皆様:
>> お世話になります.フリーランスの菅です.
>>
>> ChoreonoidがMacOSXに対応したということで,
>> こちらで試してみていますがビルドで問題が発生したので報告します.
>>
>> MacOSX+Xcode4.3.3です.
>> Eigen, boost, OSG, libyamlをソースからインストールし,
>> Choreonoidのビルドを試しています.
>>
>> cmakeは
>> cmake -DEIGEN_DIR=/usr/local/include/eigen3 -DOSG_DIR=/usr/local/include ../
>> のようにコマンドラインで環境変数を設定しています.
>>
>> この後,makeを行うと,MultiAffine3Seq.cppでエラーが起こりました.
>> 160行目の
>> static readAffine3(const Sequence& node, Affine3& out_value)
>> の部分で,Sequenceというクラス名が,
>> cnoidネームスペースと,boostネームスペースの両方にまたがっており,
>> またどちらもusing namespaceを使っているため,
>> 曖昧であることが問題と考えられます.
>> これはどちらをお使いですか?(おそらくcnoid側かと・・・)
>>
>> 他の方は問題は起きていないのでしょうか?
>>
>>
>> 基本的な問題で恐縮なのですが,
>> 対応方法等,お教えいただければと存じます.
>>
>>
>> それでは
>>
>
>
> --
> Shin'ichiro Nakaoka <s.nakaoka @ aist.go.jp>
> _______________________________________________
> choreonoid-users-ja mailing list
> choreonoid-users-ja @ choreonoid.org
> https://choreonoid.org/mailman/listinfo/choreonoid-users-ja



-- 
///////////////////////////////////////////////////////////////////
// Yuki Suga, Ph.D.
// URL: http://www.ysuga.net/?lang=en
// E-mail: ysuga @ ysuga.net
///////////////////////////////////////////////////////////////////


choreonoid-users-ja メーリングリストの案内