bonjour tout le monde"."/> bonjour tout le monde".">

Maison  >  Article  >  Opération et maintenance  >  La version compilée de Mingw peut-elle fonctionner sous Linux ?

La version compilée de Mingw peut-elle fonctionner sous Linux ?

藏色散人
藏色散人original
2023-03-24 11:00:012129parcourir

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".

La version compilée de Mingw peut-elle fonctionner sous Linux ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn