我試圖將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;