バグ #3004
完了Macでのビルドの不具合の修正
100%
説明
OpenRTM MLの皆様:
菅です.お世話になります.
OpenRTM-aist C++版をOSX Maveriksで使っています.
以下の3つの点で,ビルドが上手くいきません.
1.configure.ac
OSXでのデフォルトのgcc (Xcode)では,--export-dynamicではなく,-export-dynamicです.
2.exampleのConfigSample
VectorConert.hで定義しているoperator>>ですが,
この関数がグローバルスコープにあると上手くビルドできません.
http://clang.llvm.org/compatibility.html#dep_lookup
ここでは,operator>>をstdネームスペースに追加して回避しました.
3.SimpleIOについて
InPortを使う場合に問題が起きました.
Typecode.hにおいて,operator<<=を使っている126行目でコンパイルエラーが起きます.
問題は上記の2と同じ理由です.
CORBA::Anyに対して,TimedLong型を代入する部分ですが,
このoperator<<=はidlコンパイラによって生成されるコードなので,
この問題に対しては,rtm/Manager.hより先にrtm/idl/BasicDataType.hをインクルードするという方法で回避できます.
ただし,この方法だと,RTC Builder側のコードを変更する必要が出てきます.
他のOSでは試していません.
一応,patchを作りました.以下のようにリビジョン2400にパッチを当ててください.
$ svn co -r 2400
http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/
OpenRTM-aist-trunk
$ patch -p1 -d OpenRTM-aist-trunk < openrtm_ysuga_20131111-1.patch
お気づきの点があれば,どなたでもお教えください.
他に良い方法はありましたでしょうか?
ではでは