eclipse - 在 Eclipse 中使用 MinGW 32 位构建 64 位 dll

标签 eclipse dll mingw eclipse-cdt

我在 Windows 7 64 位上安装了 32 位版本的 Mingw 4.7.2(使用安装程序)。
我在 Eclipse C++ 项目中使用 MinGW 来构建一个 .dll 文件。到目前为止一切正常。

但是我使用这个 .dll 通过 JNI 包含在一个 java 项目中。当我在 java 项目中调用 .dll 的函数时,异常 "Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\path\mylib.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform"被抛出。
所以看起来我需要构建一个 64 位版本的 DLL。

所以我的问题是:

  • 我可以用 MinGW 32 位构建 64 位 DLL 还是我需要 MinGW 64 位版本?
  • 如果是,我需要如何调整 MinGW 和/或 Eclipse 设置才能这样做?

  • 问候马克

    编辑:正如您在下面的评论中看到的,我已经尝试设置 -m64 标志来构建 64 位 dll。这导致错误:"sorry, unimplemented: 64-bit mode not compiled in" .
    那么有没有办法让 64 位模式在 mingw32 中运行。

    最佳答案

    我最近遇到了同样的问题,安装了 MinGW-64版本启用 -m64给我的旗帜。您可以从 here 获得自动构建.

    编辑:有些人 ( rubenvb ) 在 Personal Builds 中做得很好:

    有 gcc 4.7.4 here甚至 4.8.0 here .

    关于eclipse - 在 Eclipse 中使用 MinGW 32 位构建 64 位 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16955909/

    相关文章:

    android - Eclipse 调试无法与 ART 运行时一起正常工作

    eclipse - 将 jfxrt.jar 添加到标准 Eclipse 构建路径

    .net - 用于在 vb.net 和 vs2012 中解压缩 RAR 存档的 DLL 文件

    c++ - 为什么有些函数需要作为DLL文件注入(inject)才能工作

    dll - 构建 dll 并链接到它?

    eclipse - 如何将最常见的 mercurial 命令添加到 Eclipse 工具栏?

    Eclipse PDT 调试设置 (XDebug/Zend)

    Java JNI,dll的多个版本: How to specify which dll is being used for native calls (matlab jvm)

    c++ - 为 MinGW boost 二进制文件

    c++ - GMP - 某些功能未声明,其他功能是? C++/明格瓦