Mingw compilé peut fonctionner sous Linux. La méthode de compilation est la suivante : 1. Installez mingw32 via la commande "sudo apt-get install mingw-w64" ; 2. Exécutez "sudo apt-get install wine-development wine ~ sous Linux /hello .exe > bonjour tout le monde".
L'environnement d'exploitation de ce tutoriel : système ubuntu18.04, mingw32, ordinateur Dell G3.
La version compilée par mingw peut-elle fonctionner sous Linux ?
Oui.
Programme Windows de compilation croisée pour plate-forme Linux
Environnement de compilation et de test : ubuntu18.04
Étape 1 : Installez mingw32
sudo apt-get install mingw-w64 sudo apt-get install mingw-w64-tools sudo apt-get install mingw-w64-i686-dev sudo apt-get install mingw-w64-x86-64-dev
Il peut y avoir des doublons dans ce qui précède. Pour économiser des efforts, installez-les tous directement.
Après l'installation, vous pouvez compiler le code
i686-w64-mingw32-gcc -o hello.exe hello.c
Partie 2 : Tester le programme compilé
Le fichier exe compilé peut être copié sur Windows pour le test, mais pour économiser des efforts, je souhaite l'exécuter directement sous Linux . Cela nécessite un vin complet.
sudo apt-get install wine-development wine ~/hello.exe >hello world
Partie 3 : Compilation de programmes 64 bits
Parce que j'ai besoin de compiler des programmes x64 bits, mais le test a révélé que le programme est un programme 32 bits.
x86_64-w64-mingw32-gcc -o hello64.exe hello.c
Partie 4 : Utiliser la bibliothèque pthread sur Windows
pthread est vraiment facile à utiliser, et Windows n'a pas la bibliothèque pthread par défaut.
i686-w64-mingw32-gcc -o pthread_create.exe pthread_create.c -lpthread -D__WIN32
a découvert de manière inattendue qu'il avait été compilé directement, indiquant que mingw32 a inclus la bibliothèque pthread.
J'ai couru vers Windows et je l'ai exécuté, et il a signalé "libwinpthread-1.dll.......... introuvable"
J'ai directement copié libwinpthread-1 sous /usr/i686-w64-mingw32 Dossier /lib Copiez le fichier .dll dans Windows. J'ai trouvé que ça fonctionnait.
Assez simple et assez brutal, non ? Mais c'est vraiment cool
En fait, j'ai également téléchargé la bibliothèque pthread sous Windows, mais malheureusement, il a quand même signalé que la bibliothèque est introuvable. Peut-être que gcc n'est pas chargé implicitement.
À propos du problème de l'absence de libgcc_s_dw2-1.dll dans le compilateur MinGW
Il s'avère que la liaison dynamique est utilisée par défaut lors de la liaison et que l'ordinateur de l'autre partie n'a pas de module DLL dépendant.
J'ai donc ajouté la commande après le lien :
-static-libstdc++ -static-libgcc
Recommandations associées : "Tutoriel vidéo Linux"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!