LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview fail to build exe for a perfect VI?

I build a small example VI,which simply uses a T/F constant to control a case structure. The false case passes through the data, the true case does a filter on the data. This VI runs fine for when the constant is set to either True or False.

However, if I set the constant to False, and try to build the VI into exe file, Labview fails to build exe and give out this error:

 

An error occurred while saving the following file:

C:\testfilter\Main.vi

Invoke Node in AB_Source_VI.lvclass:Close_Reference.vi->AB_Build.lvclass:Copy_Files.vi->AB_Application.lvclass:Copy_Files.vi->AB_Build.lvclass:Build.vi->AB_EXE.lvclass:Build.vi->AB_Build.lvclass:Build_from_Wizard.vi->AB_UI_FRAMEWORK.vi->AB_Item_OnDoProperties.vi->AB_Item_OnDoProperties.vi.ProxyCaller
<APPEND>
Method Name: <b>Save:Target Instrument</b>

 

If I set the constant to true, then the VI builds fine. That makes no sense, since whatever the constant value is, it should not affect the building process.Anyone knows why Labview is making this error?

Please see the attached sample project, I build it in Labview 8.6.1.   Set the constant to false, and the build fails.  BTW, the code does not do any real "meaningful" thing, it's just an abstraction of a complex program.

0 Kudos
Message 1 of 6
(3,294 Views)
I got the same error. I then deleted the code in the true case, selected the low pass filter function that you had outside the case structure, and dragged a copy inside. The build was then successfull. I can't explain what was corrupt and the error message is pointing to functions you did not have.
0 Kudos
Message 2 of 6
(3,278 Views)

In LV 2009 it works either way.

 

Just curious: Are you opening the file from a file server or from your local drive?

0 Kudos
Message 3 of 6
(3,275 Views)

smercurio_fc wrote:

In LV 2009 it works either way.

 

Just curious: Are you opening the file from a file server or from your local drive?


So do you mean in LV 2009 it compiles fine no matter the constant is set to true or false? Maybe they fixed this bug. I'd say the reason maybe is that lv initially didn't see the need to include the block in the case that is not used, but later was tring to refer to it in the final build processing.

0 Kudos
Message 4 of 6
(3,249 Views)

LyLee wrote:
So do you mean in LV 2009 it compiles fine no matter the constant is set to true or false?

It compiles and build just fine regardless of the value of the constant.

 


Maybe they fixed this bug. I'd say the reason maybe is that lv initially didn't see the need to include the block in the case that is not used, but later was tring to refer to it in the final build processing.

We have not confirmed it's a bug. I'm certainly not classifying it as a bug, especially given Dennis's comments that allude to a possible corruption in the VI. In LV2009 the VI would have obviously been recompiled, so if there was a small corruption it may have simply "gone away" with the recompilation to LV 9. 

 

0 Kudos
Message 5 of 6
(3,246 Views)
I knew this would solve the problem, because I believe the problem is that there is a case that "seems" will never be executed, so the blocks inside the case does not get included (dumped by "smart" compiler) but somehow later needs to be referenced in the build process. If you put it outside the case structure, a copy of that block will be included anyway so later it can be referenced.  I have seen similiar problems in languages like Java.   Good to hear it probabily has been solved in lv 2009, so another reason to fork a few dollars to NI for upgrades...

Dennis Knutson wrote:
I got the same error. I then deleted the code in the true case, selected the low pass filter function that you had outside the case structure, and dragged a copy inside. The build was then successfull. I can't explain what was corrupt and the error message is pointing to functions you did not have.
0 Kudos
Message 6 of 6
(3,235 Views)