DUB and static libs

Mike Parker via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Apr 20 06:12:54 PDT 2016


On Wednesday, 20 April 2016 at 10:19:10 UTC, abad wrote:
> I have a project which is a mixture of D, C++ and C. I have 
> used Make for build automation so far but would like to migrate 
> to DUB.
>
> I have hard time figuring out what to do with C / C++ sections 
> of the program. DUB seems to ignore (probably sensibly) 
> everything but D source files. I compiled a static library of 
> the non-D sections of my program, and now I'd need to tell DUB 
> to include the library in the linking stage.
>
> I tried to use "linkerFiles" argument in dub.json but that 
> doesn't seem to do anything.
>
> Here's the full dub.json:
>
>
>
> {
>     "name": "audio_test",
>     "description": "audio test.",
>     "copyright": "",
>     "authors": [""],
>     "dependencies": {
> 	"derelict-imgui": {"version":"~master", "path": 
> "./DerelictImgui/"},
> 	"derelict-glfw3": "~>1.1.0",
> 	"derelict-gl3": "~>1.0.12",
> 	"derelict-sdl2": "~>1.9.7",
>     },
>
>     "libs": [ "stdc++" ],
>
>     "stringImportPaths": [
>         "res"
>     ],
>
>     "linkerFiles": [
>         "sid.a"
>     ]
>
> }
>
> sid.a is the library in question.
>
> Any ideas?

"libs": [ "stdc++", "sid.a" ],

You'll also need to pass the appropriate linker-specific flag to 
set the library path in lflags if sid.a isn't already on the 
path. (dub already supports an importPaths field, but needs a 
libraryFlags field too given there are at least three different 
linkers to content with).


More information about the Digitalmars-d-learn mailing list