我在Windows上,并且正在使用g++
随附的mingw-64
版本。我的计算机上有一个名为lua51.dll
的文件。当我尝试运行以下命令时:
g++ -shared -fPIC -o stuff.dll -llua51 stuff.cpp
我收到以下错误:
C:/Program Files/LOVE/lua51.dll: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
make: *** [main] Error 1
我该如何解决?请让我知道是否需要更多信息;我是汇编的完整初学者。
答案 0 :(得分:0)
当运行g++
甚至gcc
的32位版本时尝试包含64位库时,会遇到此问题。
我认为g++.exe
附带的mingw-64
版本会产生64位代码,但事实证明这是不正确的。它仍然只产生32位代码。就我而言,lua51.dll
是64位的,这是一个问题,因为我使用的是g++
的版本会生成32位代码。
相反,您需要使用x86_64-w64-mingw32-g++.exe
,它可以与g++.exe
放在同一文件夹中。这是g++
的版本,它将产生64位代码。