Thread overview | ||||||
---|---|---|---|---|---|---|
|
October 31, 2009 Modules/packages and cryptic errors | ||||
---|---|---|---|---|
| ||||
I have main.d with: import foo.bar and when I run: dmd foo/*.d main.d I get: module bar is in multiple defined This is pretty strange. The only way I can silence this error is to add "module dirname.filename" to *every* file. Surely there must be less annoying method? |
October 31, 2009 Re: Modules/packages and cryptic errors | ||||
---|---|---|---|---|
| ||||
Posted in reply to al | al schrieb:
> module bar is in multiple defined
This often indicates a modules file name and the identifier in the "module" statement are unequal (case sensitivity)
|
October 31, 2009 Re: Modules/packages and cryptic errors | ||||
---|---|---|---|---|
| ||||
Posted in reply to Frank Benoit | Frank Benoit Wrote:
> al schrieb:
> > module bar is in multiple defined
>
> This often indicates a modules file name and the identifier in the "module" statement are unequal (case sensitivity)
I have all files and imports lowercase. I have class names following filenames capitalized, but that shouldn't matter, should it?
When I run:
dmd foo/bar.d
is that assuming module foo.bar or bar? If that's the latter, it might explain why I'm getting an error (import finds this file under foo.bar), but how should I compile files then?
|
October 31, 2009 Re: Modules/packages and cryptic errors | ||||
---|---|---|---|---|
| ||||
Posted in reply to al | al schrieb:
> Frank Benoit Wrote:
>
>> al schrieb:
>>> module bar is in multiple defined
>> This often indicates a modules file name and the identifier in the "module" statement are unequal (case sensitivity)
>
> I have all files and imports lowercase. I have class names following filenames capitalized, but that shouldn't matter, should it?
>
>
> When I run:
>
> dmd foo/bar.d
>
> is that assuming module foo.bar or bar? If that's the latter, it might explain why I'm getting an error (import finds this file under foo.bar), but how should I compile files then?
>
>
if 'foo' shall be package, in bar.d there should be "module foo.bar;". If imported from somewhere else, it should be "import foo.bar;".
Class/Type names should not matter.
|
Copyright © 1999-2021 by the D Language Foundation