G ++ не распознает формат файла DLL - PullRequest
0 голосов
/ 07 октября 2018

Я нахожусь в 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

Как я могу это исправить?Пожалуйста, дайте мне знать, если нужна дополнительная информация;Я полный новичок в компиляции.

1 Ответ

0 голосов
/ 09 октября 2018

Эта проблема возникает, когда вы пытаетесь включить 64-битную библиотеку при запуске 32-битной версии g++ или даже gcc.

Я думал, что эта версия g++.exe, который идет с mingw-64, произведет 64-битный код, но оказывается, что это не так;это все еще только производит 32-битный код.В моем случае lua51.dll является 64-битным, что является проблемой, поскольку я использовал версию g++, которая генерирует 32-битный код.

Вместо вам нужно использовать x86_64-w64-mingw32-g++.exe, который находится в той же папке, что и g++.exe.Это версия g++, которая будет выдавать 64-битный код.

...