It's an old one, but as I had to tackle a similar issue, I thought this might be useful to others.
You cannot link a library block "as is" to a data dictionary.
As your library block will be used in a model, anyway, there are some workarounds possible, like making use of callbacks to add the relevant Data Dictionary entries to the "host" model via Data Dictionary API utilities, which is what one is generally interested in. In this way, when you copy across or initialise or delete the library block, the callback will handle the Data Dictionary entries for the host model.
you can equip the exported interface model with the desired data dictionary. Once the library is built, it is sufficient to make sure that the host model is also equipped with the correct Data Dictionary - you shouldn't need any callback.