Importing modules under DUB on Windows

Hipreme msnmancini at hotmail.com
Wed Oct 26 18:53:58 UTC 2022


On Wednesday, 26 October 2022 at 18:37:00 UTC, DLearner wrote:
> On Wednesday, 26 October 2022 at 16:58:08 UTC, H. S. Teoh wrote:
>> On Wed, Oct 26, 2022 at 04:20:01PM +0000, DLearner via 
>> Digitalmars-d-learn wrote:
>>> Hi
>>> 
>>> Never used DUB before.
>>> Wanted to use a function stored in a module outside the main 
>>> source.
>>> 
>>> Main source has `import <modulename>;`
>>> 
>>> Put a line into the JSON: `"importPaths": "C:\\Users\\..."` 
>>> pointing to the directory holding the module.
>>> 
>>> `dub run` failed with `Expected JSON array, got string`.
>>
>> Maybe try instead:
>>
>> 	"importPaths": [ "C:\\Users\\..." ]
>>
>> since the error message indicates that it expects an array, 
>> not a string.
>>
>>
>> T
>
> Thanks for this.
> Following your suggestion, seems that DUB found the module (as 
> it got through to the linking step without complaint), but then 
> the linker failed to resolve the function name.
>
> However, when I moved the module to the project `'source'` 
> directory (and took out the `importPaths` JSON entry), 
> everything worked.
>
> But I don't really want to do this - the module is my 
> collection of utilities, used in a variety of projects, so 
> doesn't really belong within one specific project.
>
> Best regards

The linker failed to resolve because it didn't include the 
symbols you imported.
Think of import a way to the compiler resolve the compilation.
Think of source a way to both the compiler and the linker to 
resolve compilation and linking.

If you give only the import path, you will need a library.

What you actually want is to put your new importPath to the JSON 
array `sourcePaths`




More information about the Digitalmars-d-learn mailing list