On Friday, 20 July 2018 at 14:03:20 UTC, bachmeier wrote:
Yeah, I didn't need the symlink on a different machine with
Ubuntu 18.04. After some digging around, I found that I had
libclang1-3.9, libclang-dev, and libclang-common-3.9-dev
installed. libclang1-3.9 installs libclang.so.1. The one I was
missing was libclang-3.9-dev.
It's confusing and I think this could be handled better by the
distro. But this is also one of the reasons I'm not a fan of
dub. The user is left to sort through these dependencies
themselves, and that means it's really not suitable for
packages that link to C code (which is most of what I do). One
of the main selling points of D is its C interoperability, but
a lot of new users would walk away rather than trying to figure
this out, concluding that D is buggy.
I don't think it's confusing, you will also need to install the
development package if you are coding something in C. It's the
same, except for the language being D instead of C. As D is
advertised as a systems programming language, this doesn't seem
confusing (to me, at least).
If a dub package uses a system library though, it can be hinted
at by the `systemDependencies` key in `dub.json`/`dub.sdl`. The
problem is, I don't think many packages actually use it and I
agree that since it's too easy to overlook it, you're often left
to figure everything out. It's not something you're likely to
find out unless you are already looking for it.