【问题标题】:JNI - compile dll as 64 bitJNI - 将 dll 编译为 64 位
【发布时间】:2012-11-29 10:47:41
【问题描述】:

我使用以下命令编译我的.dllgcc -mno-cygwin -I"/cygdrive/c/Program Files/Java/jdk1.7.0_04/include" -I"/cygdrive/c/Program Files/Java/jdk1.7.0_04/include/win32" -Wl,--add-stdcall-alias -shared -o CalculatorFunctions.dll CalcFunc.c 我为 Eclipse 使用 GlassFish。整个系统是一个 CORBA 客户端-服务器。当我从 Eclipse 启动服务器时 - 很好。但是当我尝试从 CMD 运行服务器时(因为我想为服务器设置端口和主机地址)它给了我:Exception: ... .dll: Can't load AI 32-bit .dll on a AMD 64-bit platform

我搜索了其他主题,发现我应该尝试将我的 JDK 更改为 32 位 - 没有再次工作。 所以我读到的另一个解决方案是将 .DLL 编译为 64 位。我需要使用什么命令或者我是怎么做的?

提前致谢! :)

【问题讨论】:

    标签: dll java-native-interface x86 64-bit 32-bit


    【解决方案1】:

    您不仅需要命令,还需要整个64-bit MinGW toolchain - 首先需要一个 64 位编译器。然后你的 gcc 调用的参数应该是一样的。

    请注意,64 位不仅仅是可编译性的问题。原始数据类型具有不同的大小,因此任何没有sizeof 检查的代码制作假设都是一个潜在问题。最突出的是指针算法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      相关资源
      最近更新 更多