1

.dll我使用以下命令编译我的:gcc -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 我使用 GlassFish for Eclipse。整个系统是一个 CORBA 客户端-服务器。当我从 Eclipse 启动服务器时 - 很好。但是当我尝试从 CMD 运行服务器时(因为我想为服务器设置端口和主机地址),它给了我:Exception: ... .dll: Can't load AI 32-bit .dll on a AMD 64-bit platform

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

提前致谢!:)

4

1 回答 1

0

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

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

于 2012-11-29T14:17:02.803 回答