You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Steve Huston <sh...@riverace.com> on 2012/02/20 16:27:17 UTC

RE: Windows EXTERN question

Hi Alan,

> Question: in SequenceNumber.h we have:
>
> class QPID_COMMON_CLASS_EXTERN SequenceNumber : public ...
> {
>   ...
>     int32_t value;
>
>     void decode(Buffer& buffer);
>   ...
> };
>
> But I'm getting
>
> 76>QueueReplicator.obj : error LNK2019: unresolved external symbol
> "public: void __thiscall qpid::framing::SequenceNumber::decode(class
> qpid::framing::Buffer
> &)"
> (?decode@SequenceNumber@framing@qpid@@QAEXAAVBuffer@23@@Z
> )
> referenced in function "class qpid::framing::SequenceNumber __cdecl
> qpid::ha::`anonymous namespace'::decodeContent<class
> qpid::framing::SequenceNumber>(class qpid::broker::Message &)"
> (??$decodeContent@VSequenceNumber@framing@qpid@@@?A0x57ef80
> a8@ha@qpid@@YA?AVSequenceNumber@framing@2@AAVMessage@bro
> ker@2@@Z)
>
> Does windows require individual EXTERN declarations on member functions
> even if there's a CLASS_EXTERN on the class? Or is there something else 
> I'm
> missing?

No, there's no need for member function EXTERNs if the CLASS_EXTERN is there 
and the right macros are set to turn the CLASS_EXTERN on. From the error, 
I'm guessing that either QPID_COMMON_CLASS_EXTERN is not defined correctly, 
or the macro to turn it on is not set up correctly.

-Steve


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org