12-13-2023 11:11 AM
Hi,
Environnement : LV21.0.1.f2 (32-bit) on W10 64-bit French.
A relatively large application runs flawlessly in development mode. It also compiles as expected.
However, the EXE cannot be executed (broken arrow). Viewing its code with the debug utility, I notice that ALL VIs and ctls appear with a question mark icon.
Has anyone encountered this case before?
Thanks in advance for any hints that might help me solve this annoying problem!
12-13-2023 12:23 PM
@JB wrote:
Hi,
Environnement : LV21.0.1.f2 (32-bit) on W10 64-bit French.
A relatively large application runs flawlessly in development mode. It also compiles as expected.
However, the EXE cannot be executed (broken arrow). Viewing its code with the debug utility, I notice that ALL VIs and ctls appear with a question mark icon.
Has anyone encountered this case before?
Thanks in advance for any hints that might help me solve this annoying problem!
Just a guess, some kind of dependency problem where they aren't automatically added and you have to "always include" them? (This would indicate some kind of strange project structure that would suggest a significant departure from LV best practices.)
12-13-2023 01:51 PM
Without any description of your project other than "relatively large," you leave us with nothing to guide us other than my magic 8-Ball. Si, here goes.
Oh, magic 8-Ball ~~~~ could the executable build spec be built BEFORE any dependant packed library outputs have been built?~~~~
12-14-2023 02:48 AM
As a first step, I was just hoping that someone else had experienced this problem, which is why I didn't give any more details about the application. Even if I doubt that they are really useful, here are a few :
- several hundred VIs
- some are called dynamically
- many are reentrant (asynchronous control of 4 test stations on an assembly line)
- self-made QMH framework
- DAQmx, NI-XNET (LIN), CANopen, Modbus
- JKI State Machine, LabVIEW State Diagram, Enhanced State Diagram
Our applications are for internal use only. Apart from the fact that this is the first application I've developed with LV21 and the first use of Enhanced State Diagram for one state machine, it's not very different from the previous ones in terms of structure and hierarchy.
Compared with others, the executable seems rather large (60MB). ALL the VIs and ALL the ctls are missing.
Same part of code in the development environment :
If no-one has had to deal with this problem, I'd have no choice but to make bits of applications to try and identify the cause of the problem.
12-14-2023 03:36 AM - edited 12-14-2023 03:37 AM
I'm a bit confused. You talk about building an application but then show the diagram of the build application? How did you build the application? How does the according project look? What are the build settings for the application? 60MB for the few 100 VIs you mention definitely sounds excessive.
12-14-2023 04:00 AM - edited 12-14-2023 04:20 AM
@billko wrote:
@JB wrote:
Hi,
Environnement : LV21.0.1.f2 (32-bit) on W10 64-bit French.
A relatively large application runs flawlessly in development mode. It also compiles as expected.
However, the EXE cannot be executed (broken arrow). Viewing its code with the debug utility, I notice that ALL VIs and ctls appear with a question mark icon.
Has anyone encountered this case before?
Thanks in advance for any hints that might help me solve this annoying problem!
Just a guess, some kind of dependency problem where they aren't automatically added and you have to "always include" them? (This would indicate some kind of strange project structure that would suggest a significant departure from LV best practices.)
Not that strange.
At least in some recent LV versions, LV includes VIs in the exe that are reference with static VI references, but not static VI references in that VI. So the trick doesn't work recursively.
If you (only) open VI references by name or path, they are never included automatically.
So a relatively straightforward architecture with dynamic static VI A starting dynamic static VI B, B won't be included automatically.
12-14-2023 04:04 AM
@JB wrote:However, the EXE cannot be executed (broken arrow).
If you click the broken arrow, you should get a (slightly) more descriptive message (that you might consider posting here).
You could add the suspicious VI(s) as top level VIs, and click their run arrows to get (slightly) more descriptive message (that you might consider posting here).
Rinse and repeat.
12-14-2023 04:10 AM
@JB wrote:A relatively large application runs flawlessly in development mode.
Relative to what?
It's usually more complexity than numbers that cause problems. 1 or 2 VIs can create a problem, where 4000 VIs work can work perfectly.
12-14-2023 05:12 AM
wiebe@CARYA wrote:
@JB wrote:However, the EXE cannot be executed (broken arrow).
If you click the broken arrow, you should get a (slightly) more descriptive message (that you might consider posting here).
You could add the suspicious VI(s) as top level VIs, and click their run arrows to get (slightly) more descriptive message (that you might consider posting here).
Rinse and repeat.
The message isn't more descriptive. It just says that the VI is not executable and that the development environment is needed to correct the errors.
12-14-2023 05:18 AM - edited 12-14-2023 05:20 AM
@rolfk wrote:
I'm a bit confused. You talk about building an application but then show the diagram of the build application? How did you build the application? How does the according project look? What are the build settings for the application? 60MB for the few 100 VIs you mention definitely sounds excessive.
Because of the problem, the application was built with the "Enable debugging" checked.
This allows to see the code of the executable.