[dub] Error: module `main` from file source\main.d is specified twice on the command line

Jacob Carlborg doob at me.com
Sat Jun 23 08:10:08 UTC 2018


On 2018-06-22 21:41, Anonymouse wrote:
> I'm trying to set up AppVeyor to build and test my project.
>
> After some dancing to get a 64-bit dmd.exe in there (which should really
> be included in the 7z in 2018) everything seems like it should work, but
> compiling with dub build fails. dub test works but claims that it's
> excluding main.d twice. Everything just works locally.
>
> appveyor.yml:
> https://github.com/zorael/kameloso/blob/b278468eb69f221c0db6b96274cec2b0fd25612f/appveyor.yml#L92
>
> dub.json:
> https://github.com/zorael/kameloso/blob/b278468eb69f221c0db6b96274cec2b0fd25612f/dub.json#L8
>
>
> Slightly summarized:
>> $ dub test -c cygwin
>> # ...excluded main.d twice but worked
>>
>> $ dub build -c cygwin
>> Performing "debug" build using dmd for x86_64.
>> requests 0.7.4: building configuration "std"...
>> kameloso 1.0.0-rc.1+commit.322.gb278468e: building configuration
>> "cygwin"...
>> Error: module `kameloso.main` from file source\kameloso\main.d is
>> specified twice on the command line
>> dmd failed with exit code 1.
> Job log:
> https://ci.appveyor.com/project/zorael/kameloso/build/job/kd6lqu2kxg4vxqmv
>
> dub.json does have a mainSourceFile entry, so I thought to remove that,
> but if I do it breaks dub test with "only one `main` allowed".
>
>
>> $ dub test -c vanilla
>> Executable configuration "vanilla" of package kameloso defines no main
>> source file, this may cause certain build modes to fail. Add an
>> explicit "mainSourceFile" to the package description to fix this.
>> Generating test runner configuration 'kameloso-test-vanilla' for
>> 'vanilla' (executable).
>> Excluding package.d file from test due to
>> https://issues.dlang.org/show_bug.cgi?id=11847
>> Performing "unittest" build using dmd for x86_64.
>> kameloso 1.0.0-rc.1+commit.316.gc9216fa3: building configuration
>> "kameloso-test-vanilla"...
>> source\kameloso\main.d(744,6): Error: only one `main`, `WinMain`, or
>> `DllMain` allowed. Previously found `main` at
>> C:\Users\appveyor\AppData\Local\Temp\1\dub_test_root-5d1d92fa-e527-43b0-a181-184253ffcc9d.d(45,12)
>>
>> dmd failed with exit code 1.
> Job log:
> https://ci.appveyor.com/project/zorael/kameloso/build/1.0.0-rc.2.143/job/8tox3hym32leik7u
>
>
> What can I do?

It might be this issue [1], should be fixed in the latest version of Dub.

[1] https://github.com/dlang/dub/issues/1454

-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list