The order of libraries makes error in dub

Mike Parker via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Dec 5 06:59:26 PST 2016


On Monday, 5 December 2016 at 14:29:42 UTC, unDEFER wrote:
> On Monday, 5 December 2016 at 11:51:52 UTC, unDEFER wrote:
>
>>     "libs-posix": ["db"],
>>     "sourceFiles-windows-dmd": ["libdb53d.lib", "WS_32.LIB"],
>>     "dflags-windows": ["-m32mscoff"],
>>
>>     "subPackages": [
> ....
>
> I understand that I don't must add "sourceFiles-windows-dmd" to 
> lib project, I must add it to subPackages, but dub places the 
> names of lib BEFORE -m32mscoff. So it doesn't work.
> Say me: dub for windows not ready??

DUB works on Windows just fine. My question is, why are you 
passing libraries in the sourceFiles field? Why not:

"libs-windows-dmd":["libdb53d.lib","ws2_32.lib"]

Does that make a difference?

Also, let's be clear here, the errors you saw above are linker 
errors, not DUB errors. This one in particular is very common on 
Windows when using the MS linker:

warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other 
libs; use /NODEFAULTLIB:library

It's normally because you're linking in libs compiled against 
different versions of the C standard library. Google should help 
you out there.


More information about the Digitalmars-d-learn mailing list