我使用以下命令编译.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位。我需要使用什么命令或者我该怎么做?
提前致谢! :)
答案 0 :(得分:0)
您不仅需要一个命令,还需要整个64-bit MinGW toolchain - 一个64位编译器。那么你的gcc调用的参数应该是一样的。
请注意,64位不仅仅是可编译性问题。原始数据类型具有不同的大小,因此任何在没有sizeof
检查的情况下进行假设的代码都是潜在的问题。最突出的是,指针算术。