12.2 使用 Mono 在 Linux 下运行 HALCON/.NET 应用程序

Chapter “Creating Applications With HALCON/.NET” describes in detail how to develop HALCON/.NET applications in general. If you want to create applications under Linux using Mono, see the following sections for additional information: "使用 HALCON/.NET 创建应用程序" 一章 详细介绍了开发 HALCON/.NET 应用程序的一般方法。如果您想在 Linux 下使用 Mono 创建应用程序,参见以下小节了解更多信息:

如果您想以 Linux 为目标且不需要 Windows 窗体,请考虑使用 .NET Core。

12.2.1 限制

在通过 Mono 开发或使用 HALCON/.NET 应用程序时,请注意以下限制:

12.2.2 部署在 Windows 下创建的 HALCON/.NET 应用程序

由于 HALCON/.NET 的平台独立性,只要目标计算机上安装了 Mono 和 HALCON,您就可以将在 Windows 下创建的应用程序复制到 Linux 计算机上,并在那里启动它(更多信息请参阅 "部署应用程序" 一节 )。

12.2.3 使用 Mono 编译 HALCON/.NET 应用程序

大多数 HALCON/.NET 示例都在子目录 makefiles 中提供了一套 makefiles,让您可以在 Linux 下编译这些示例(有关支持 Linux 的示例列表,参见 "提供的示例" 一节 )。要开始编译,只需键入

gmake

可执行文件放在子目录 makefiles/bin 中。

HALCON XL 应用:  ! 
请注意,只有在需要 HALCON XL 功能时才可使用

要创建 HALCON/.NET XL 应用程序,请键入

gmake XL=1

<configuration> 
  <dllmap dll="halcon"
          target="/opt/halcon/lib/x64-linux/libhalcon.so"/> 
</configuration>

图 12.1: HALCON 安装在 /opt/halcon 目录下的配置文件示例。

在某些情况下,Mono 可能找不到本地 HALCON 库 libhalcon.so,这应通过环境变量 LD_LIBRARY_PATH 来解决,并发出相应的错误信息。您可以为 HALCON/.NET(和 HDevEngine/.NET)程序集创建配置文件,明确指定 HALCON 库的路径(示例见 图 12.1 ),方法是调用

gmake config

如果只想为其中一个程序集创建配置文件,请使用 make 命令 config_halconconfig_engine

请注意,您也可以在项目文件中使用 xbuild(Mono 的 msbuild 实现)。

12.2.4 使用其他图形用户界面库

原则上,您也可以使用其他图形用户界面库代替 Windows 窗体或 WPF,例如 Gtk#。但是,HSmartWindowControlHSmartWindowControlWPF 分别是 Windows 窗体或 WPF 元素,因此不能再使用。相反,您可以使用算子 OpenWindow 直接打开 HALCON 图形窗口。如果要在另一个元素内放置图形窗口,请在参数 fatherWindow 中传递该元素的本地窗口句柄。请注意,HALCON/.NET 尚未与其他图形用户界面库一起进行测试。