我试图将OpenCV移植到C++ Builder(XE3版本)。问题将OpenExr(OpenCV的第三方)移植到C++ Builder 32位编译器
我遇到了很多编译器错误。
据我所知,BCC 32位不是一个铿锵的抱怨编译器,并不遵循C++ 11标准。这就是我遇到这么多问题的原因。
我试图用解决方法一个接一个地解决这些问题的一部分。但是,我无法解决以下问题。有人可以帮我解决这个问题吗?
p.s.我知道这是BCC32的一个问题,因为可以使用Visual Studio甚至BCC64编译器成功编译此代码。
下面的代码是从ImfBoxAttribute.cpp萃取(在OpenCV中2.4.11 \源\的3rdParty \的OpenEXR \ IlmImf)
template <>
void
Box2iAttribute::writeValueTo (OStream &os, int) const
{
Xdr::write <StreamIO> (os, _value.min.x);
Xdr::write <StreamIO> (os, _value.min.y);
Xdr::write <StreamIO> (os, _value.max.x);
Xdr::write <StreamIO> (os, _value.max.y);
}
当我与C++生成器XE3 32位编译,我用下面的编译器满足错误:
[bcc32 Error] ImfBoxAttribute.cpp(61): E2171 Body has already been defined for function 'Box2iAttribute::writeValueTo(OStream &,int) const'
和
[bcc32 Error] ImfBoxAttribute.cpp(62): E2451 Undefined symbol 'os'
Full parser context
ImfBoxAttribute.cpp(47): namespace Imf
ImfBoxAttribute.cpp(61): parsing: void Box2iAttribute::writeValueTo(OStream &,int) const
这里是Box2iAttribute的定义:
typedef TypedAttribute<Imath::Box2i> Box2iAttribute;
typedef Box <V2i> Box2i;