Cross compilation arch linux -> windows gtk3
Posté le 18/06/2020 19:11
hello.
J'essaie de compiler du C sur mon arch linux pour un windows. J'ai trouvé
ça , et ça fonctionne ... Maintenant vient le problème des libs... Je souhaite utiliser GTK3, j'ai trouvé
ça . La compilation fonctionne avec
x86_64-w64-mingw32-gcc -g test.c -Wall -o hello.exe `x86_64-w64-mingw32-pkg-config /usr/x86_64-w64-mingw32/lib/pkgconfig/gtk+-3.0.pc --cflags` `x86_64-w64-mingw32-pkg-config /usr/x86_64-w64-mingw32/lib/pkgconfig/gtk+-3.0.pc --libs`
Le hello.exe est bien généré, mais, à l'exécution, j'ai cette erreure barbare 0xc000007b , et sous wine , j'ai ça:
00c0:err:module:import_dll Loading library libglib-2.0-0.dll (which is needed by L"Z:\\home\\benoit\\Downloads\\hello.exe") failed (error c000007b).
pour chaque dll
Je précise que j'ai bien mis les dll dans le même répertoire, et que le même code fonctionne totalement compilé 'normalement' pour linux.
J'ai réinstallé mingw-w64-gtk3, mais toujours la même chose.
Je me suis sûrement planté dans pas mal de choses. J'ai trouvé sur google que mon erreur pouvait signifier que je mélange du 32 et 64 bits, mais ça ne m'avance pas beaucoup.
Désolé pour le gros hors sujet!
Citer : Posté le 18/06/2020 19:33 | #
Le chargement de la libglib-2.0-0.dll a échoué. Par hasard, est-ce que libglib-2.0-0.dll est bien distribué avec l'exécutable pour wine ? (pour Windows aucune idée de quoi tu parles, tu n'es effectivement pas sur le bon forum)
Mon blog ⋅ Mes autres projets
Citer : Posté le 18/06/2020 19:40 | #
Elle n'est pas distribuée avec wine, mais je l'ai mise dans le même dossier. Quand je l'enlève, l'erreur change, vers not found. Donc je suppose qu'elle est détectée.
Je vais demander ça sur un autre forum un peu plus adapté.
J'ai l'impression que j'ai vraiment fait n'importe quoi avec le mingw-w64-gtk3 ...
Citer : Posté le 18/06/2020 20:31 | #
Ce code d'erreur semble être STATUS_INVALID_IMAGE_FORMAT. Le format de la DLL est invalide, ce qui peut être une question d'architecture (32-bit/64-bit), d'endianness... as-tu vérifié que les caractéristiques du système sur lequel tu lances le programme compilé sont vraiment les mêmes que celles de la lib ? Je suis pas hyper familier avec MinGW donc je sais pas exactement où il faut regarder, mais c'est une piste.
Citer : Posté le 18/06/2020 20:59 | #
Merci beaucoup.
J'ai réussi :-)
J'avais pris des dll trouvé sur internet au lieu de prendre celles distribuées avec mingw-w64-gtk3
J'ai fait un locate nom d'une dll invalide, l'ai trouvé dans le bin de l'architecture et ai copié le contenu du répertoire.