【问题标题】:Is there an easy way to build a 64-bit JD2XX DLL?是否有构建 64 位 JD2XX DLL 的简单方法?
【发布时间】:2010-10-15 16:10:06
【问题描述】:

为了从 Java 应用程序访问 FTDI USB 板,我使用的是 JD2XX driver wrapper (JD2XX.dll)。它在 32 位系统上工作得很好,但是当它从 64 位 JVM 加载时,它说 64 位 JVM 不可能加载 32 位 DLL。非常好理解。为了解决这个小问题,我在 64 位系统上安装了一个 32 位 JVM,它运行良好。非常简单的解决方案,但是向客户解释可能会变得非常复杂!

因此,我想创建或以其他方式获取此 JD2XX.dll 文件的 64 位版本。我想知道是否有人成功地做到了这一点,或者我该如何继续。我认为在 ftdi-win32 项目中应该有对 32 位 dll 的引用,我可以在重新编译 64 位系统上的所有内容之前更改为 64 位 dll 引用,但我没有找到。

我将不胜感激任何有关此的帮助。我觉得我不会很快找到解决这个问题的方法。我描述的文件可以在最新的these packages找到。

非常感谢,

乔丹

【问题讨论】:

  • 在 JD2XX 驱动程序包装器的网站上有一个链接,其中包含软件作者 (pbleyer) 的电子邮件地址。你试过发邮件问他吗?
  • 哦,让我们这样做吧!考虑到最新软件包的年代,我什至没有考虑过。
  • 我问我如何才能获得 64 位版本,他回答说他目前没有 64 位环境。我认为这比在某处更改引用并重新编译更复杂......

标签: java 64-bit usb driver


【解决方案1】:

我终于设法生成了那个 64 位 DLL 文件。 ... :)

这是我获得它的方式:

  1. 下载了JD2XX package(最近的其实是20071214)。
  2. 下载mingw-w64(个人构建sezero)并解压到C:\(给出C:\mingw64)。
  3. 对 JD2XX 包进行了一些修改。
    • 调整了 Makefile.conf
      • 根据我的系统更正了 MINGW 和 JDK 路径。
      • 选择 ftdi-win32 和 amd64
    • 重命名已经生成的 32 位 JD2XX.dll 文件,以便 make 停止告诉没有什么可以做。
    • 将 ftdi-win32/libftd2xx.a 重命名为 32 位... 将其替换为 ftdi-win32/amd64/ftd2xx64.lib 的副本(当然更名为 libftd2xx.a)。
  4. 从 JD2XX 包的主目录调用 C:\mingw64\bin\mingw32-make.exe。这创建了一个新的 JD2XX.DLL 文件,它允许我与 64 位计算机上的 FTDI 设备进行通信,而无需使用 32 位 JVM。

generated file for download 如果有人需要的话。

【讨论】:

  • 很容易在 JD2XX 类中添加一个开关(在 os.arch 属性上)以根据正在运行的 JVM 的位数加载 32 位或 64 位 DLL(loadLibrary( ) 在静态块中调用...)。
【解决方案2】:

“生成的下载文件”对我不起作用,所以我按照说明自己制作,它有效: http://dev.geogebra.org/download/lib/ftdi/JD2XX_64_2.08.17.dll

看起来您应该能够通过下载正确版本的 mingw-w64 在 32 位系统(甚至在 linux 上)构建 64 位 dll: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/sezero_4.5_20111101/

另外,有些链接已经过时了。这些是当前的:
d2xx.svn.sourceforge.net/viewvc/d2xx/trunk/
www.ftdichip.com/Drivers/D2XX.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-08
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    相关资源
    最近更新 更多