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.