2012-11-29 81 views
0

我使用以下命令編譯我的.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 我使用GlassFish for Eclipse。整個系統是一個CORBA客戶端服務器。當我從Eclipse啓動服務器時 - 沒關係。但是,當我嘗試從CMD運行服務器(因爲我想爲服務器設置一個端口和主機地址)時,它給了我:Exception: ... .dll: Can't load AI 32-bit .dll on a AMD 64-bit platformJNI - 將dll編譯爲64位

我搜索了其他話題,看到我應該嘗試更改我的JDK到32位 - 不再工作。 因此,我讀到的另一個解決方案是將.DLL編譯爲64位。我需要使用什麼命令,或者我該怎麼做?

在此先感謝! :)

回答

0

您不僅需要一個命令但整個64-bit MinGW toolchain - 一個64位編譯器擺在首位。然後,參數到你的gcc調用應該是一樣的。

請注意,64位不僅僅是一個兼容性問題。原始數據類型具有不同的大小,因此任何編碼假設沒有sizeof檢查是一個潛在的問題。最顯着的是指針算術。