DLL: format de fichier non reconnu lors de la compilation de C avec MinGW sous Linux pour Windows

J’utilise MinGW sur Linux (Ubuntu, en particulier) pour comstackr un programme C pour Windows. J’utilise une bibliothèque appelée SFML et des liaisons appelées CSFML. J’utilise -L et -l pour localiser les bibliothèques, mais lorsque je comstack, j’obtiens cette erreur:

win32/dll/csfml-audio-2.dll: file not recognized: File format not recognised 

Je ne sais pas pourquoi. Voici la commande que j’utilise pour comstackr:

 sudo i686-w64-mingw32-gcc -o wandering src/main.c src/constants.c src/Display/display.c **...some more c files in here...** src/Generation/perlinnoise.c $(pkg-config --libs --cflags glib-2.0) $(pkg-config --libs --cflags gee-1.0) -Iwin32/CSFML-2.1/include -Lwin32/dll -lcsfml-audio- 

Est-ce que quelqu’un sait pourquoi cela se passe? Je peux comstackr des programmes C sans SFML mais avec MinGW, tout va bien …

La DLL a un en-tête de fichier exécutable PE32. Ce n’est pas utilisé pour l’éditeur de liens. Vous devriez plutôt utiliser la bibliothèque d’importation. Ce fichier a l’extension LIB.

J’ai entendu dire qu’il existe certaines versions du compilateur gcc qui génèrent une bibliothèque d’importation à partir d’une DLL à la volée. Il semble que votre version ne le soit pas.