It is common for people to create a custom symbol library where the symbol file has symbol type “X”, and its subcircuit netlist can be embedded in the library file field or linked to an external subcircuit library (.lib). My custom library is made with embedded subcircuits, so once the symbol is pulled into the schematic, everything stays with the schematic, making sharing easy (there is no need to share the library).
However, some may be interested in having a library for hierarchical symbols / blocks. A hierarchical block has a symbol type of “[empty]”, and its first attribute is a link to the name of its child schematic. The benefit of using a hierarchical block is that you can edit your subcircuit easily by editing its child schematic. In Qspice, it is possible to manage a custom library for your hierarchical symbols with child schematics. Here is a slide showing how to do it.
Just be aware that if you share a schematic with hierarchical symbols in it, you must also share your entire library or copy those child schematics along with your parent schematic.

