On Sunday, 12 June 2016 at 01:51:05 UTC, Joerg Joergonson wrote:

Well, it's definitely not as simple as you make it out to be. I have tried all kinds of combinations of libs and settings and nothing works. If it's not one error it's another and it becomes hard to know exactly what is going on because the people who created these applications didn't have the forethought to give meaningful error messages.

I believe the main problem now is that ldc is not linking phobo's or runtime or whatever because I get all kinds of weird export issues.


with x86 ldc I get

Error: module libsmBase is in file 'libsmBase.d' which cannot be read.

The module though is actually mBase and it is in libs\mBase. It removing the directory.

From the build:

echo libs\mBase.d >"Win32\Debug LDC\Test.build.rsp"

So, not sure if the error is just leaving out the '\' or what. Irregardless, please don't act like all this is my problem because most of it is due to crappy design and forethought.

This is a compiler error, not a linker error. "module foo is in file 'foo.d'" is the error you normally see when you've got a problem with your import path, or imported the wrong module name. Obviously, there's an issue here with the directory name being pushed onto the module name, but I can't even begin to guess why that happened. I assume you've imported mBase in another module. What was your import statement? Do you have a module declaration in mBase.d?

And I know you're frustrated, but please don't blame 'crappy design and forethought'. Plenty of people are using these tools just fine. That doesn't mean that there won't be bugs in them, or that they are implemented to the point that someone unfamiliar with them can use them out of the box. VisualD is developed by one person in his spare time. The LDC team is also small and work in their spare time. I think they've done a great job getting as far as they have. Once we figure out what your issue is, then you should be golden.


Maybe I am suppose to include the subdirs in my project in visual studio/D and the error message simply cannot find the modules? But how am I suppose to know that with an illogical error message like what is above?

That's not an illogical error message. It's coming from the DMD front end, which all of the major D compilers share. Anytime you see it, it means you've got an issue with your import path. I've never seen the specific error you've got, where the directory name is merged with the file name. That *is* weird, but the error message itself is normally very useful.


DMD works fine BTW. GDC and LDC should be a drop in replacement. Not a totally new setup that has it's own set of problems. I'm sure I'm not the only one put off by the compounding of problems when using D.

I think that's reasonable. All three compilers share the same fronted, but beyond that, they are quite different. IIRC, LDC does recognize some DMD switched, and there is a tool called GDMD that allows you to invoke GDC as if you were invoking DMD, but you can't expect the compilers to be drop-in replacements for each other. GDC has to fit in with the GCC ecosystem, which means it accepts a number of command line options that DMD does not support, and any that are specific to D must be consistent with other GCC tools in format. LDC also is a completely different tool. There will always be differences that prevent them from being interchangeable, which is why we have build tools and IDEs to hide the differences from us.

Reply via email to