On Tuesday, 23 March 2021 at 17:19:10 UTC, mw wrote:
If it's not a clean up issue, try
-- DMD 2.095 or
-- LDC 1.25.1
to see if you can build, if yes, then it could be a bug of 2.096
I tried compiling with both DMD 2.095.1 and LDC 1.25.1 and still
got the linker errors.
Then I tried compiling with and older version of dub (version
1.20.1 which shipped with DMD 2.091.1) but compiling with DMD
2.096.0 (`/opt/dmd.2.091.1/linux/bin64/dub build
--compiler=/opt/dmd.2.096.0/linux/bin64/dmd`) and it compiled and
linked just fine. So, this appears to be a dub problem.
After some additional testing, I found that this compiles with
dub version 1.23.0 (shipped with DMD 2.094.1) but not with dub
version 1.24.1 (shipped with DMD 2.095.1).
I ran `/opt/dmd.2.094.1/linux/bin64/dub build
--compiler=/opt/dmd.2.096.0/linux/bin64/dmd -v` and
`/opt/dmd.2.096.0/linux/bin64/dub build
--compiler=/opt/dmd.2.096.0/linux/bin64/dmd -v` and diffed the
compilation and linking commands. The linking commands are the
same, but the compilation commands are different. The compilation
command generated by the new version of dub is missing a number
of files (from a library that I am importing) that the old
version of dub includes. All of the places where I was getting
linker errors are in these missing files.
I am working on creating a minimum test case using dustmite and
will file an issue in the dub GitHub project. I will post a link
to the issue here when I have created an the issue.
Thanks for your help!