11-26-2012 05:25 PM
I really can't believe I still don't know a good way to do this...
In some projects, I want to include a library in the project folders that was created (usually by someone else) and refers to itself in the vi.lib or user.lib folder.
When I open this, all the VIs come up with warnings. Right now, I will mass compile the library.
Is there a better way to do this?
11-27-2012 04:10 PM
Jed,
If you wouldn't mind, could you possibly clarify exactly what you mean when you say "Is there a better way to do this?" I am not quite sure what process you are referring to. As far as how to create an .llb in a project, here is a link that explains how to do that:
http://digital.ni.com/public.nsf/allkb/E698CCDF9DB336D78625711800762EC0?OpenDocument
If you are referring to how to get rid of all of the warnings that are created because your project cannot get rid of the dependencies, here is a link to a knowledgebase that describes a workaround:
http://digital.ni.com/public.nsf/allkb/A1DD4570721A99DF8625769300766EBA?OpenDocument
Hopefully this is enough to get you started, and please let me know if you have any additional questions.
Regards,
Keith M.
Applications Engineering
11-27-2012 08:28 PM
Ok, here's the situation I end up seeing over and over...
I download a library in .lvlib form, typically a driver.
My preference is to place this library within my project heirarchy...
c:\project\drivers\NewDriver.lvlib
I will add it to my project (which is typically at c:\project\project.lvproj) eventually.
Here's where things get to be a pain...
So before I start calling that code, I will try and play with the driver, usually there is an example in there. So I open the .lvlib directly (my project is closed).
Most likely, the author of that code has used virtual folders to organize all the code. Examples, Config, Low-Level, blah blah blah. Every one of the files in the .lvlib is missing. Any attempt to individually open any of those files and you have to search for them, and the search TYPICALLY defaults to vi.lib or instr.lib.
The only solution I have found is to mass compile. However, I suspect that if I move it again, I will have trouble again.
Is there any way to have the files in virtual folders yet link relatively to the library file?
11-28-2012 02:33 AM
11-28-2012 02:38 AM
Sorry if I wasn't clear. The .lvlib is the description file, but the entire thing is typically distributed in a folder heirarchy with the .lvlib in the root of the folder, and all the member files in the same folder or the heirarchy.
The issue is that when you add the files to the .lvlib in the virtual folders, it stores the absolute path (or at least, the path starting with vi.lb/instr.lib/user.lib).
This is a problem in two ways...
1) When I download someone else's code and want to use it outside of the "proper" place within the LV folder
2) When I create a library myself, and then want to move it (soemtimes into the LV folder).
12-06-2012 01:57 PM
I keep looking for a good answer to this question, but haven't found one yet...
08-22-2013 09:09 AM
I ended up just copying and pasting everything i need for my lvlib to my new computer, including the menu files. Everything seemed to work out just fine.
06-11-2014 03:23 PM
Did you ever come upon a good method for handling this problem?
I can't help but think I'm doing something wrong when doing such a basic thing is so difficult.
06-11-2014 03:44 PM - edited 06-11-2014 03:50 PM
Yes, Don't do that!
lvlibs that are used between multiple project belong in a common location <Reuse>lib and be added to a using project in "Dependancies" not copied on disk! (you just caused yourself to have multiple copies of the code to maintain if you did not do this)
OK so thats not the way you swing-- you really do have a second project that could use a very close copy of another library but you really really want to branch the darn thing.
Open the lvlib in a new project explorer by right-clicking the lvlib select the lvlib and from the right click save...save as... Copy
Note that in now way did I touch the OS file explorer window! That would be like someone moving all of the stuff that you owned without ask you or telling you where they put your stuff. Worse all your stuff (lvlib members) ALSO know they are yours and where you are supposed to be BUT, someone just blindfolded you put you in the trunk of a car and shoved you out in an unknown dark alley..
Then you understand where all the conflicts come from when the project is opened again?
06-11-2014 04:20 PM
Thanks for the explanation, this makes more sense now.
The original reason for putting an intrument library in a place other than the original <instr.lib> directory was that I often find the existing library's lacking and needing bug fixes. As such I want to put these files under revision control system to distribute and record any changes I make. I probably need to rethink how I'm managing my revsion control of beta quality lvlibs.