[Scons-users] Problem with DLL dependencies on Windows
Gary Oberbrunner
garyo at oberbrunner.com
Fri May 24 08:55:03 EDT 2013
This works OK with regular Windows compiler, right? Just not with mingw?
Sounds like it could just be a problem with the mingw tool - for instance,
maybe in the exe builder it's not searching for .dlls when looking for -l
libs.
On Fri, May 24, 2013 at 8:30 AM, Dmitry Mikhin <dmitry.mikhin at gmail.com>wrote:
> Hi Dan and everyone,
>
> Yes, this sounds similar indeed. Manual tracking of dependencies
> (along the lines given in your email) would work, although IMO this
> would be a kludge. It seems that SCons shall handle this automatically
> (after all, even if I never mentioned the extension ".dll" in my
> SConscripts, SCons somehow knows about it behind the scenes). SCons
> knows about the dependency on ".a" files, can find the ".a" files in
> the installed directory, and installs only the correct sub-set for
> partial builds. Yet it skips DLLs, even if the obtained ".exe" clearly
> depends on them.
>
> Seems like an extension is needed (do not want to call it "bug").
> Dmitry
>
> On Fri, May 24, 2013 at 8:35 PM, Dan Pidcock <dan.pidcock at googlemail.com>
> wrote:
> > On 24 May 2013 09:41, Dmitry Mikhin <dmitry.mikhin at gmail.com> wrote:
> >>
> >> Yes, they do:
> >> My targets: ['utils.dll', 'libutils.a']
> >>
> >> Any other ideas?
> >> Dmitry
> >
> >
> > I saw what may be a similar issue when using windows shared libraries. We
> > have set scons up with variant directories (which are named for each
> library
> > to prevent name clashes) which is where it creates the .dlls and .lib
> files.
> > An Install builder is used to copy the .dll and .lib files over to a
> shared
> > binary directory (one for each variant).
> >
> > When used with just scons on the command line this was OK, but when I
> build
> > particular targets it didn't always update so I have a dictionary of the
> > installed libraries which is keyed on each project, and then those are
> > manually added to the dependency graph with Depends. Not sure if this is
> > exactly the same scenario you have but maybe this will give you some
> ideas?
> >
> > We use something like:
> > projectTarget = projectEnv.SharedLibrary(libraryName, Glob('*.cpp'))
> > installedProject = projectEnv.Install(paths.BinPath(), projectTarget)
> > installedLibraries[libraryName] = installedProject
> >
> > ... later ...
> > (given a list requiredLibraries of libraries that a program depends on)
> >
> > for lib in requiredLibraries:
> > if lib in installedLibraries:
> > Depends(projectTarget, installedLibraries[lib])
> >
> > Dan
> >
> >
> > _______________________________________________
> > Scons-users mailing list
> > Scons-users at scons.org
> > http://four.pairlist.net/mailman/listinfo/scons-users
> >
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> http://four.pairlist.net/mailman/listinfo/scons-users
>
--
Gary
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130524/d5aa1689/attachment.html>
More information about the Scons-users
mailing list