Trying to use the libclang Dub package

Laurent Tréguier laurent.treguier.sink at gmail.com
Sat Jul 21 16:04:57 UTC 2018


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.


More information about the Digitalmars-d-learn mailing list