VC2008用STLPort 编译ACE失败

来源:互联网 发布:org.apache.storm 编辑:程序博客网 时间:2024/05/21 06:21

今天在VC2008中用STLport5.2编译ACE,编译器提示error,如下所示:

 

D:/ACE57SRC/ACE_wrappers/ace/checked_iterator.h(42) :error C2653: 'stdext' : is not a class or namespace name
D:/ACE57SRC/ACE_wrappers/ace/checked_iterator.h(42) :error C2143: syntax error : missing ';' before '<'

 

解决方案如下:

 

在checked_iterator.h中把下面代码
# if defined (_MSC_VER) && (_MSC_FULL_VER >= 140050000)
template <typename PTR>
stdext::checked_array_iterator<PTR>
ACE_make_checked_array_iterator (PTR buf, size_t len)


修改为:
# if (defined (_MSC_VER)) && (_MSC_FULL_VER >= 140050000) && (!defined (_STLPORT_VERSION))
#  include <iterator>
# endif  /* _MSC_VER >= 1400 */
# if (defined (_MSC_VER)) && (_MSC_FULL_VER >= 140050000) && (!defined (_STLPORT_VERSION))
template <typename PTR>
stdext::checked_array_iterator<PTR>

 

修改后重新编译,编译成功!

原创粉丝点击