OpenCV を C++ Builder (XE3 バージョン) に移植しようとしています。
多くのコンパイラ エラーに遭遇しました。
私が知っているように、BCC 32 ビットは clang 準拠のコンパイラではなく、C++11 標準に従っていません。だからこそ、私はこれまで多くの問題に直面してきました。
これらの問題の一部を回避策で 1 つずつ解決しようとしました。ただし、次の問題は解決できません。誰かがこれについて私を助けることができますか?
ps このコードは Visual Studio または BCC64 コンパイラでも正常にコンパイルできるため、BCC32 の問題であることはわかっています。
次のコードは、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 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;