I think that's a libtool/automake thing. The vkd3d-compiler target will get the -lSPIRV-Tools-shared flag from libvkd3d-shader.la, but not the -L flag with the additional path, so ld won't know where to find libSPIRV-Tools-shared.so unless you e.g. set an appropriate LD_LIBRARY_PATH. Adding @SPIRV_TOOLS_LIBS@ to vkd3d_compiler_LDADD (and DEMOS_LDADD) avoids the issue at build time, but you'll still need to set LD_LIBRARY_PATH to run the resulting executable.