[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: dll names on windows
From: |
Max Bowsher |
Subject: |
Re: dll names on windows |
Date: |
Sat, 14 Apr 2007 23:23:20 +0100 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050923 Thunderbird/1.0.7 |
Bob Rossi wrote:
> I've recently converted pcre's (http://www.pcre.org/) build
> system to use the autotools.
>
> The previous stable version of libtool, pcre-7.0, used to create dll's
> on mingw. It would create
> $ ls .libs/*.dll
>
> .libs/pcre.dll .libs/pcreposix.dll
>
>
> Now, the new autotools version creates,
> $ ls ../../pcre-7.1-RC4/prefix-shared/bin
>
> libpcre-0.dll libpcrecpp-0.dll libpcreposix-0.dll pcre-config
...
> A user has complained that the new filename change, on windows, will
> effect the way they have to load pcre as a plugin. They said that on
> windows it's common to always name the dll simply pcre.dll and then
> provide a coff file, which is metadata describing the version number
> and characteristics of the dll.
>
> My question is, what's the correct way to name these dll's on windows?
> What would be an appropriate response to this user?
AFAIK, the coff file is purely informational, and not involved in any
way with the actual linking/loading - unlike the filename, which is
clearly important here.
The reason for placing the number into the name is to make it possible
for multiple incompatible versions of a DLL to be present on a system
without colliding - the aptly named "DLL Hell".
I'd tend to assume that the only way that this will affect your user is
that they will have to specify the new name - which ought to be pretty
trivial. Perhaps you'd like to nudge them for clarification on why they
think this is a difficulty?
Numbering of DLLs in this way is perhaps a bit rare on Windows in
general, but hardly unknown. A prime example is:
msxml.dll
msxml2.dll
msxml3.dll
msxml4.dll
> Finally, here is the version numbering in configure.ac,
> m4_define(libpcre_version, [0:1:0])
> m4_define(libpcreposix_version, [0:0:0])
> m4_define(libpcrecpp_version, [0:0:0])
> not sure if that's good or not.
Those numbers mean:
libpcreposix and libpcrecpp: this is the first release since versioning
began.
libpcre: this is the second release since versioning began, but the ABI
is unchanged since the first release.
Max.
signature.asc
Description: OpenPGP digital signature