2017-02-28 98 views
0

我尝试在DrRacket中使用libserialport。 libserialport是https://docs.racket-lang.org/libserialport/index.html。 我通过DrRacket“file-> package manager”安装libserialport软件包源代码。 安装后,当我在DrRacket中使用(需要libserialport)时,出现错误 ffi-lib:无法打开“libserialport-0.dll” 如何解决?谢谢racket找不到libserialport-0.dll

+0

您是否安装了[图书馆](http://sigrok.org/wiki/Libserialport)?您链接的球拍页面需要在外部进行安装。 – Sylwester

+0

我通过DrRacket-> file-> package_manager安装了球拍libserial。也许我需要从外部安装git://sigrok.org/libserialport?我试图将libserialport源代码编译为libserialport-0.dll,但不知道如何。 libserialport源代码中的README只提供了一种在msys2中安装源代码的方法。 – Mars

+0

@Mars你有什么操作系统? – soegaard

回答

0

从DrRacket安装实际上并不安装库本身,只有球拍绑定到需要在使用之前安装的库。您看到的错误消息是因为它没有找到该库,因为它尚未安装。

在本文档中是明确规定:

它(库)必须从外部安装到该球拍模块, preferrably经由系统包管理器。

要安装库转到Downloads sectionlibserialport's project page并下载和安装一个适合你的操作系统和架构。安装时,球拍模块应该工作。

+0

非常感谢。我使用win10并在msys2中安装libserialport并在“C:\ msys64 \ mingw32 \ bin”中获取libserialport-0.dll。我也将此路径设置为Windows系统路径。但DrRacket仍然无法打开libserialport-0.dll文件。 – Mars

+0

@Mars我的任何一台机器上都没有Windows,因此恐怕我无法为您提供帮助。也许别人可以更新我的答案,在哪里放置dll或设置环境变量,以便它找到它。 – Sylwester

0

我现在完成了这个工作。 的Windows(32位或64位),

  1. 在msys2-的MinGW-32位环境中安装libserialport。然后,文件libserialport-0.dll完成。
  2. 将libserialport-0.dll文件的路径添加到Windows系统PATH中。
  3. 安装球拍(i386-win32)& libserial binding。然后(需要libserialport)将工作。

请注意,Racket(x86_64)无法成功加载libserialport-0.dll。

感谢@Sylwester。