LabVIEW 可执行文件找不到 DLL

更新 Nov 6, 2023

适用于

软件

  • LabVIEW Application Builder Module

问题详述

  • 我已经创建了一个在我的开发计算机上运行良好的 LabVIEW 可执行文件,但在部署计算机上产生错误,因为找不到 DLL。如何将此库添加到可执行文件中?
  • 我在我的构建中包含了一个 DLL 作为依赖项,但我部署的可执行文件仍然找不到该 DLL。我可以看到 DLL 正在部署机器上安装,但未正确加载。
  • 我在部署计算机上运行 LabVIEW 应用程序时出现以下错误: “缺少外部函数 dll...”

解决方案

  1. 确保您的 DLL 包含在可执行文件的构建中。如果您的代码正在对 DLL 进行动态调用,那么您将需要通过手动将 DLL 添加到项目来管理项目的依赖项
  2. 使用相对路径调用 DLL。将 DLL 包含在可以相对于已知位置寻址的位置,例如已部署的可执行文件的目录。然后,您可以在 LabVIEW 中构建一个相对路径,只要 DLL 安装在相同的相对位置,该路径在部署机器上就有效。
  3. 确保 DLL 不包含在您的 user.lib 库中。 user.lib 库并不总是在搜索路径中;通过将您的 DLL 放在另一个文件夹中来找到它。
  4. 如果 DLL 是第 3 方驱动程序的一部分,请确保按照说明将其安装在部署计算机中。某些使用 DLL 外部函数的第 3 方驱动程序需要其他依赖项才能正常工作。这些说明可能包括将文件复制到特定文件夹、添加环境变量路径等操作。您可以通过在 LabVIEW 安装程序中包含第三方安装程序和驱动程序来自动执行这些操作。
    1. 如果您不确定您的 DLL 需要哪些其他依赖项才能正确运行,您可以使用名为Dependencies的第 3 方应用程序对其进行分析。使用此程序,您将能够浏览 DLL 并查看需要安装的所需文件。
  5. 确保 DLL 路径名称在开发环境和目标环境之间没有变化。
    1. 如果是这样,在开发计算机上,转到构建规范
    2. 选择附加除项。
    3. 禁用不包括非独立共享库。
    4. 这会将 DLL 包含在“始终包含”文件夹中。

相关信息

  • 链接到项目构建的 DLL 可能难以调试。本文解决了因在 LabVIEW 代码中错误地获取 DLL 而引起的问题。但是,还有许多其他可能与 DLL 相关的问题。如果您已尝试此处的步骤但仍然遇到与 DLL 相关的错误,请参阅本文的相关链接部分。
  • 动态调用的 DLL 不会立即作为依赖项添加到包含动态调用的项目的构建规范中。它们必须手动添加。
  • 在机器之间移动代码时,绝对路径是有问题的,因为它们通常特定于开发机器。两台机器上的文件路径必须相同,绝对路径才能有效工作。由于这在大多数应用程序中几乎是不可能的,因此建议使用相对路径。