Я пытаюсь подключить OpenCV к C++ Builder (версия XE3).Ошибка переноса OpenExr (сторонняя сторона OpenCV) на 32-битный компилятор C++ Builder
Я столкнулся со многими ошибками компилятора.
Как я знаю, BCC 32-бит не является компилятором жалобы clang и не соответствует стандартам C++ 11. Вот почему я встретился с таким количеством вопросов.
Я попытался решить части этих вопросов один за другим с помощью обходных решений. Однако я не могу решить следующее. Может кто-нибудь мне помочь?
p.s. Я знаю, что это проблема с BCC32, так как этот код можно скомпилировать с помощью Visual Studio или даже компилятора BCC64.
Следующий код извлекается из ImfBoxAttribute.cpp (в OpenCV 2.4.11 \ Sources \ 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++ Builder XE3 32bit, я встречаюсь со следующим компилятором ошибки:
[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;