Fixed in revision 286.

On Fri, Dec 25, 2009 at 2:28 PM, Kenton Varda <ken...@google.com> wrote:

> Ah, yeah, I hadn't tested compiling as a DLL under MSVC yet.  Thanks for
> reminding me to fix this before the final release.  2.2.0 should work.
>
>
> On Fri, Dec 25, 2009 at 1:27 AM, Soth <soth1...@yahoo.com> wrote:
>
>> I`m using 2.3.0rc1.
>>
>> On 25 дек, 07:07, Kenton Varda <ken...@google.com> wrote:
>> > What version did you try this with?
>> >
>> > On Thu, Dec 24, 2009 at 3:38 PM, Soth <soth1...@yahoo.com> wrote:
>> > > Hi,
>> > > I`ve tried to compile the protocol buffers library as a DLL in
>> > > msvs2008 and it didn`t link. The problems are basically with incorrect
>> > > export of functions/classes from the libprotobuf-lite and
>> > > libprotobuf :
>> >
>> > > 1) StringSpaceUsedExcludingSelf undefined in lite, to solve moved
>> > > definition from generated_message_reflection.h to repeated_field.cc
>> >
>> > > 2) bool DescriptorPoolExtensionFinder::Find(int number, ExtensionInfo*
>> > > output) undefined in lite and i think it can be only solved by
>> > > removing DescriptorPoolExtensionFinder class declaration from the
>> > > extension_set.h and placing it in to a new file in libprotobuf
>> > > extension_set_heavy.h or somewhere else in libprotobuf local headers.
>> >
>> > > On Dec 23, 3:51 am, Kenton Varda <ken...@google.com> wrote:
>> > > > If you link protobuf as a DLL:
>> >
>> > > > (1) You must link to the C runtime as a DLL, otherwise you'll end up
>> with
>> > > > two copies of the C runtime, which may mean two separate heaps,
>> among
>> > > other
>> > > > things.
>> >
>> > > > (2) All components of your application which use protocol buffers
>> must
>> > > link
>> > > > to the same C runtime as the protocol buffers DLL.  This is true
>> when
>> > > static
>> > > > linking as well, but sometimes people mistakenly think that it is
>> not
>> > > true
>> > > > with DLLs.
>> >
>> > > > (3) All components of your application which use protocol buffers
>> must
>> > > use
>> > > > the same version of protocol buffers.  The DLL binary interface is
>> not
>> > > > compatible between two different versions.
>> >
>> > > > (4) You absolutely cannot place the protobuf DLL in a system shared
>> > > > directory, because it may be incompatible with other apps which use
>> a
>> > > > different version of the DLL.  The DLL has to stay in your
>> application's
>> > > own
>> > > > directory.
>> >
>> > > > Given these constraints, there isn't much benefit to dynamic linking
>> for
>> > > > most people.  Usually the advantage of using a DLL is that you can
>> share
>> > > it
>> > > > between multiple programs, but that is unlikely to work well with
>> > > protocol
>> > > > buffers due to the interface version compatibility issues.
>> >
>> > > > Another typical reason to use DLLs is because you want to provide a
>> > > "plugin"
>> > > > system for your application.  But if all your plugins link against
>> > > > libprotobuf as a DLL, then they must all use the same version of
>> protocol
>> > > > buffers, which is a pretty serious limitation to any plugin system.
>>  A
>> > > > better approach would be to statically link each plugin individually
>> > > against
>> > > > protocol buffers; this way, each plugin has its own embedded copy
>> and
>> > > > doesn't have to worry about version compatibility with other
>> plugins.
>> > > >  However, if you do this, then you cannot pass protocol buffer
>> objects
>> > > > between plugins, since they might use different versions of the
>> library.
>> > > You
>> > > > can, however, pass encoded messages between plugins -- the encoding
>> > > format
>> > > > is (obviously) compatible between versions.
>> >
>> > > > On Mon, Dec 21, 2009 at 5:21 PM, Soth <soth1...@yahoo.com> wrote:
>> > > > > Hi,
>> > > > > in protobuf documentation it`s stated that static linking is
>> preferred
>> > > > > to dynamic because of different issues. I`d like to know what
>> these
>> > > > > issues are, what i shouldnt do with the protobuf if i link with it
>> > > > > dynamically and how come that static linking is better. Thanks
>> ahead.
>> >
>> > > > > --
>> >
>> > > > > 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<protobuf%2bunsubscr...@googlegroups.com>
>> <protobuf%2bunsubscr...@googlegroups.com<protobuf%252bunsubscr...@googlegroups.com>
>> >
>> > > <protobuf%2bunsubscr...@googlegroups.c­om>
>> > > > > .
>> > > > > For more options, visit this group at
>> > > > >http://groups.google.com/group/protobuf?hl=en.-Hide quoted text -
>> >
>> > > > - Show quoted text -
>> >
>> > > --
>> >
>> > > 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<protobuf%2bunsubscr...@googlegroups.com>
>> <protobuf%2bunsubscr...@googlegroups.com<protobuf%252bunsubscr...@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<protobuf%2bunsubscr...@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