1

を使用してPython用のC++ライブラリのインターフェイスを作成しようとしていますがboost::python、C ++コードはを使用していますがACE、次のコードを含めると

#ifdef BUILD_PYTHON_EXT
  #include <boost/python.hpp>
  using namespace boost::python;
#endif

次のエラーが発生します

1>E:\thirdparty\ace.6.1.0_versioned_vc10\ace/ACE.h(150): error C2872: 'ssize_t' : ambiguous symbol
1>          could be 'E:\thirdparty\ace.6.1.0_versioned_vc10\ace/os_include/sys/os_types.h(126) : int ssize_t'
1>          or       'E:\thirdparty\boost_1_51_0\boost/python/ssize_t.hpp(15) : boost::python::ssize_t'

このエラーを解決するにはどうすればよいですか

4

1 に答える 1

1

この場合、using ディレクティブは使用しないでください。使用namespace python = boost::pythonまたは何か他のもの。または、ACE ヘッダー、または の前に ACE ヘッダーを含むものを含める必要がありますusing namespace boost::python;が、最初が望ましいです。

于 2012-08-22T09:36:45.573 に答える