Cygwin 无法加载共享库 dlllablgtk2

Cygwin cannot load shared library dlllablgtk2

我已经在 Cygwin 中安装了 lablgtk 并编译了本教程中的示例 https://ocaml.org/learn/tutorials/introduction_to_gtk.html

ocamlfind ocamlc -g -package lablgtk2 -linkpkg simple.ml -o simple

然而,当我尝试 运行 使用 "run simple" 的程序时,没有任何反应。然后我再次编译,这次输出为 "simple.exe" 并尝试 运行 使用“./simple.exe”编译此文件。现在我收到以下错误:

Fatal error: cannot load shared library dlllablgtk2
Reason: %1 is not a valid Win32 application.

应该指出的是,我几天前才能够编译和 运行 该程序。我不确定从那时起发生了什么变化,我也不确定下一步该做什么。

我在编译时收到以下警告:

File "simple.ml", line 10, characters 2-44:
Warning 10: this expression should have type unit.
File "simple.ml", line 20, characters 2-54:
Warning 10: this expression should have type unit.
File "simple.ml", line 25, characters 2-69:
Warning 10: this expression should have type unit.

但这并没有阻止我之前运行安装程序。 我该如何解决这个问题?

我通过将 MingGW 重新添加到我的路径解决了这个问题:

export PATH=$PATH:"/usr/x86_64-w64-mingw32/sys-root/mingw/bin"

我以前做过这个,这就是为什么以前可执行文件可以运行的原因,但它似乎没有保存到我下次登录时。之前,当我没有添加路径时,我无法安装 lablgtk,因此无法编译程序,所以我收到了一个不同的错误。这次安装了 lablgtk,所以虽然编译成功了,但我得到了一个非常不同的错误,导致了混乱。