On Saturday, 19 March 2016 at 10:52:35 UTC, Johan Engelen wrote:
On Saturday, 19 March 2016 at 08:10:41 UTC, Johan Engelen wrote:
On Friday, 18 March 2016 at 20:47:41 UTC, Walter Bright wrote:
On 3/18/2016 6:59 AM, Johan Engelen wrote:
It'd be nice to be able to call `dmd -ldflags` whose output would be the
standard linker flags.

  dmd -v file.d

will tell you what command is sent to the linker.

That linker command does not include the path to phobos.
You would have to parse the output, etc...

Would you accept a PR that adds `dmd -ldflags` ?

For C++/D linking, I used the C++ linker for LDC (master), but now I am changing it to using the D compiler with "-L-lstdc++" to link. It solves the issue of finding the location of phobos/druntime (different for dmd and ldc) and other required libs for D code. It also solves a Windows-specific linking problem when main() is in C++ code [1].

Unfortunately, this was not true. If your D code does not have main(), linking does no work with DMD on Windows: phobos is not linked when there is no main(). Note that "phobos" also contains druntime and so a D source file with only "void foo() {}" does not link, and results in unresolved external symbol _d_assert among others. This is giving me a major headache at the moment while trying to change LDC's build.
(on Linux and Mac, it turns out things are easier)

Reply via email to