Hi all, could anyone shed some lights on when and why to use .llb .lvlib or lvproj?
I'm using LV2013 and trying to update an old .llb written in LV7.
There are already similar posts on the forum, but long story short:
lvproj - it's a LabVIEW project, which allows you to organize the code in a nice way. It can include any files, VIs, lvlib, llb, etc.
lvlib, llb - these are used for organization of reusable sets of VIs. More detailed you can either google, or search this forum, or check this link.
Now I am probably wrong here but I have never seen the need for creating an llb or lvlib in over a decade of LabVIEW programming. As it seems to me that creating an llb or lvlib is really only handy when you have written a "driver" for some instrument and plan on distributing it or need to include source code and sub-vi's in your distribution, rolling them all together into one file makes it easier.
An LVPRJ is something completely different, that keeps track of your project, and you need to use the project manager to make executables and installers.
The one line summary: lvlib files have a different purpose (architecture design) than llb or lvlibp files (code distribution).
lvlib files are Project Libraries and are a way of managing the architecture of an application. It is generally the developer who decides where it is appropriate to use them or not; many applications have been written without them. They are also a precursor to building lvlibp files and also the basis for LabVIEW classes (a special form of project libraries). While lvlib files and their contained VIs etc. can be distributed the purpose of using a lvlib is not related to distribution - it is related to encapsulation during the coding process. All the features of project libraries can be replicated by following coding conventions; the advantage of project libraries is that the IDE assists with enforcing these conventions.
llb files are a container file specifically intended for distributing multiple VIs. They don't provide any mechanism of encapsulation but they can be re-built by a developer with a newer version of LabVIEW than the original source.
lvlibp files are built binary files that are also specifically intended for distributing multiple VIs. They are built from project library lvlib files and have the advantage of being faster to load, inheriting the encapsulation aspects of lvlibs and are versionable (in Windows at least via the FileVersion headers). They have the distinct disadvantage of being built for a specific version of LabVIEW and are not a great option for distributing a generic driver/framework for more than one version of LabVIEW.