LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Moving a .LVLIB?

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?

0 Kudos
Message 1 of 10
(5,776 Views)

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

 

0 Kudos
Message 2 of 10
(5,753 Views)

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?

0 Kudos
Message 3 of 10
(5,745 Views)
Isnt the lvlib like a lvproj just a 2kb definition, the vi's are separate? If so, you need to move all files, not just the lvlib.
G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 4 of 10
(5,738 Views)

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).

Message 5 of 10
(5,736 Views)

I keep looking for a good answer to this question, but haven't found one yet...

0 Kudos
Message 6 of 10
(5,695 Views)

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.

0 Kudos
Message 7 of 10
(5,592 Views)

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.

0 Kudos
Message 8 of 10
(5,484 Views)

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?


"Should be" isn't "Is" -Jay
0 Kudos
Message 9 of 10
(5,479 Views)

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.

0 Kudos
Message 10 of 10
(5,471 Views)