Using LabVIEW Developed VIs, Executables, or Installers with a Different Operating System

Updated Mar 7, 2024

Reported In

Software

  • LabVIEW

Operating System

  • Linux
  • Windows
  • Mac OS X

Issue Details

  • Can I port my LabVIEW application that I developed on one operating system to another? Are there any special considerations I need to keep in mind? 
  • I have developed a VI on a Windows operating system (OS) and have built an executable. Can I run the executable (exe) on a Mac OS or a Linux?
  • Can I deploy a LabVIEW installer/executable I have created on a Windows computer to a system with a different version of Windows?
  • I have created an EXE for my application in LabWindows/CVI on a Windows XP computer. I would like to run that executable on a target computer that has Windows 7.
  • I have created an installer for my LabVIEW application on my development machine, which is Windows 7. When I move it to an older version of Windows like Windows XP, I get this error: The installation requires Windows 7 SP1 or later.
  • I have created an installer of an application with LabVIEW 2015 on a Windows 7 computer. When I use the same installer to install my application on a Windows 10 computer I get a broke arrow that says: This VI is not executable. The full development version of LabVIEW is required to fix the errors.

Solution

Developed VIs

As long as the LabVIEW versions on the development computer and the new computer are the same (or newer in most cases), you can move VIs between versions of Windows, Mac OS X, and Linux. When you open the VI on the new platform, LabVIEW detects that the VI is from another platform and recompiles it to run correctly. 
 

However, if a VI contains platform-specific features, such as .NET or ActiveX, you cannot move it between platforms. Refer to the Porting VIs among Platforms topic in the LabVIEW Help for more information about the platform-specific features that prevent you from moving a VI between operating systems. This help topic also includes information about workarounds where they are available.

Executables and Installers

Executables (stand-alone applications) and installers are platform dependent. An executable must be built on the target Operating System and cannot run on another OS or on another version of the same OS. For example, a Windows 7 installer or executable may not work as expected on a different Windows version (e.g. Windows XP, Windows 8, Windows 10). A VI can be recompiled because the VI includes the source code. However, an executable includes pre-compiled code, and it cannot be converted. Also, if you are using .NET framework to develop your code, make sure you are using the same versions of .NET in your Development PC and your Deployment PC. 

Alternatives:

  • Set up a virtual machine that matches the OS version and bitness of the machine used to build the executable or installer.
  • Run the application using Windows compatibility mode(external link).  This is not known to be a reliable solution.  You will have to look up the steps for running compatibility mode for your specific Windows version as the steps are different for different versions of Windows.

Additional Information

Virtual Machines (VM)

Built applications can also run on virtual machines running the same operating system used to build the application. This option generally works for projects that do not involve hardware unless your virtual machine is specifically configured to interface with your hardware. Virtual Machines are also not officially supported by NI .
 

Platform Dependent Features

Platform dependent features like ActiveX and dynamic link libraries (.dll files) will not transfer between platforms. Features such as Active X and DLLs are only available on the Windows platform. Apple Events are only available on the Macintosh platform. If VIs use platform dependent features, modification is required when they are transferred from one platform to another. If Code Interface Nodes (CINs) are used in the VI, then it is necessary to recompile the CIN code when transferring between platforms.
 

Hardware Drivers

Not all hardware drivers are supported on all platforms. Therefore, NI recommends that you make sure the required drivers for your hardware are supported in the operating system before you move your application to a different operating system.  For example, applications developed using DAQmx 9.8 are not compatible on Linux or OS X.  The application would need to be modified to use the DAQmx Base 3.7 driver. Additionally, it is important to consider that these two drivers do not support all of the same hardware, so moving an application from one operating system to another may require different hardware. You should always consult the README for the device driver to confirm its compatibility with devices and operating systems.


DLL and Shared Objects

DLL files in Macintosh and Linux machines are referred to as Shared Object (SO) or .so files.

Note: NI-DAQmx Base is compatible with macOS 10.14 and earlier versions and starting 2018, NI-DAQmx for Linux is included with the NI Linux Device Drivers. Please check compatibility for Windows, Linux, and macOS for supported versions of this driver. For more information, please read the End-of-Life Announcement for DAQmx Base Driver .