If it really that, you may use namespace to get this symbol different name.
I.e:

namespace my_ns
{
class MY_DLL_EXPORT my_class : public std::set<int>
{
};
}

--------------------------------------------------
From: "Anu KR" <anu.rajag...@gmail.com>
Sent: Friday, December 18, 2009 4:23 PM
To: "Protocol Buffers" <protobuf@googlegroups.com>
Subject: Re: [protobuf] Re: Link errors with protobuf 2.2.0a

> Thanks every body for the reply.
>
> I did checked the project settings for protocol buffer libraries and
> our libraries, and they are the same. They were Multi-threaded Debug
> DLL (/MDd) for debug version and and Multi-threaded DLL (/MD) for
> release.
>
> However  we found that one of our classes were inheriting from
> std::set<int> and the same class was being imported as well using
> __declspec(dllimport) , So the compiler will generate the needed
> symbols for the stl related stuff . I suspect what is happening is the
> new version 2.2.0a of the protobuf is also doing similar thing and the
> same stl symols get generated in libprotbuf  as well. Now we have 2
> libraries importing the same stl related symols and that could be the
> reason for LNK2005 - already defined.
>
> What we did as a work around is changed the class which was importing
> the symbols to not inherit from std::set and the symbols are not
> getting generated any more in our library and it links fine.  Am not
> sure whether this is the best solution to do ?  We could do this since
> one of the  library which was having the issue was our own and was in
> our own control .
>
> What could be the possible solution if both of these libraries were 3pp. ?
>
> Thanks & Regards
> Anu K R
>
>
>
> On Thu, Dec 17, 2009 at 11:18 PM, Oleg Smolsky <oleg.smol...@gmail.com> 
> wrote:
>> On Dec 17, 12:27 pm, Kenton Varda <ken...@google.com> wrote:
>>> On Thu, Dec 17, 2009 at 2:47 AM, <a...@sibmail.ru> wrote:
>>> > Hello,
>>>
>>> > You should use same runtime library setting to build your application 
>>> > and
>>> > protobuffer libraries.
>>>
>>> Specifically, debug vs. release, single-threaded vs. multi-threaded, 
>>> etc.
>>>  Unfortunately, MSVC's STL implementation for each of these library
>>> implementations is different.
>> VS2008 does not have a single-threaded CRT any more, but configuring
>> debug/release and static/dynamic linking in a consistent way is vital.
>>
>> Oleg.
>>
>> --
>>
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" group.
>> To post to this group, send email to proto...@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> protobuf+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/protobuf?hl=en.
>>
>>
>>
>
> --
>
> You received this message because you are subscribed to the Google Groups 
> "Protocol Buffers" group.
> To post to this group, send email to proto...@googlegroups.com.
> To unsubscribe from this group, send email to 
> protobuf+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/protobuf?hl=en.
>
> 

--

You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.


Reply via email to