From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Should I "Separate compiled code from source file" for *.ctl files?

Solved!
Go to solution

There's a few good reasons to separate compiled code from VIs.

 

Now, the option is also available for custom controls/type definitions. I'm wondering if there's any benefit whatsoever in separating compiled code from these? None of the reasons for separation apply to *.ctl files, after all. In fact, it might even be slightly detrimental -- in a few quick experiments, separating compiled code increased the size of the *.ctl files!

 

(Cross-posted at https://lavag.org/topic/19681-should-i-separate-compiled-code-from-source-file-for-ctl-files/ )

Certified LabVIEW Developer
0 Kudos
Message 1 of 5
(5,276 Views)
Solution
Accepted by topic author JKSH

Hi JKSH,

 

Good question!  After researching a bit, the first reason mentioned in the KB you linked (to simplify source control) seems like it might apply to .ctl files.

 

I'd guess that similarly to how changes in 1 VI results in unsaved changes within any VIs which call it, changes with a .ctl file can do the same.  However, separating compiled code seems to make it possible to only make changes to one file at a time, without the domino effect.

 

Best,

 

David Randolph

Applications Engineering

National Instruments

www.ni.com/support

Message 2 of 5
(5,230 Views)

Yes, you should. It gets rid of some of those annoying mystery "you modified something but I can't tell you what" astrisks when you update a child ctl or move to a new LabVIEW version.

Message 3 of 5
(5,219 Views)

So, from the labview 2018 help "Do not separate compiled code from VIs that you intend to load or run using the LabVIEW Run-Time Engine. The Run-Time Engine cannot run these VIs because it has no access to the compiled object cache that stores the separate compiled code. 

Is this true for built executables?

Does this mean that you can't remote debug these executables?

 

It was a no-brainer that I should do it until i saw this.  what does it mean?

 

0 Kudos
Message 4 of 5
(2,546 Views)

@David-n-MO wrote:

Is this true for built executables?


No, it is not.  Built executables contain all object code.  What the help is referring to there is if you are calling a VI file (not in a PPL or executable) with the RTE (ie dynamically from an executable).


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 5 of 5
(2,541 Views)