[choreonoid-users-ja 00080] Re: ChoreonoidプラグインでのBoost Asio利用

Isao Hara isao-hara @ aist.go.jp
2013年 2月 14日 (木) 09:07:10 JST


岡本さん、中岡さん:

原@産総研です。
下記のエラーメッセージをみると std::shared_ptr がないのが問題のようですね。
bootsのヘッダーを少し見ると、 detail/config.hpp の130行目あたりに、

// Standard library support for shared_ptr and weak_ptr.
#if !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR)
# if defined(__GNUC__)
# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
# if defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_ASIO_HAS_STD_SHARED_PTR
# endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
# endif // defined(__GNUC__)
# if defined(BOOST_MSVC)
# if (_MSC_VER >= 1600)
# define BOOST_ASIO_HAS_STD_SHARED_PTR
# endif // (_MSC_VER >= 1600)
# endif // defined(BOOST_MSVC)
#endif // !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR)

と記載されています。
また、

 http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/overview/cpp2011/shared_ptr.html

にも|g++| 4.3 以降と Microsoft Visual C++ 10では、デフォルトで有効になっ
ていると書かれていますね。

ところで、現在、Windowsで使用されているコンパイラは、VC2010でしょうか?
もしかすると何らかのオプション定義をしなければいけないかもしれませんが、
下記のエラーをなくすには、

|BOOST_ASIO_DISABLE_STD_SHARED_PTR

を定義してコンパイルすればよいのではないでしょうか?
|
(2013/02/14 4:54), 岡元 崇紘 wrote:
> 中岡さん、
>
> ご返信有難うございます。
>
> こちらでもUbuntu12.04の環境を構築しGRobotPluginにboost/asio.hppをインクルー
> ドしてみましたが、確かに問題なく読み込めるようです。
> Ubuntu環境だとshファイルから一括で依存ライブラリがインストールされるので非常
> に楽ですね。
>
> Asioに関してはやはりWindows(win7 64bit,32bit)環境でのみ起こるコンパイルエ
> ラーであり、
> 下記のように/detail関連の読み込みでうまくいかないようなので、
> こちらでもう少し原因と解決方法を探ってみたいと思います。
>
> 2>C:/Program Files
> (x86)/boost/boost_1_47\boost/asio/detail/shared_ptr.hpp(31): error C2039:
> 'shared_ptr' : 'std' のメンバーではありません。
> 2>C:/Program Files
> (x86)/boost/boost_1_47\boost/asio/detail/shared_ptr.hpp(31): error C2868:
> 'boost::shared_ptr' : using 宣言の構文が無効です。修飾された名前が必要です。
> 2>C:/Program Files
> (x86)/boost/boost_1_47\boost/asio/detail/weak_ptr.hpp(31): error C2039:
> 'weak_ptr' : 'std' のメンバーではありません。
> 2>C:/Program Files
> (x86)/boost/boost_1_47\boost/asio/detail/weak_ptr.hpp(31): error C2873:
> 'weak_ptr' : シンボルを using 宣言の中で使用することはできません。
>
>
> 有難うございました。
>
> --
> 岡元
>
>
> _______________________________________________
> choreonoid-users-ja mailing list
> choreonoid-users-ja @ choreonoid.org
> https://choreonoid.org/mailman/listinfo/choreonoid-users-ja


-- 
---------
産業技術総合研究所  知能システム研究部門
統合知能研究グループ 主任研究員
ソフトウェアプラットフォーム研究班 班長
 原  功 <Isao-Hara @ aist.go.jp>
Isao HARA, Senior Research Scientist, ISRI, AIST, Japan
Phone: +81-29-861-5973 

-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://choreonoid.org/pipermail/choreonoid-users-ja/attachments/20130214/7c5af4cb/attachment.html>


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