web-dev-qa-db-fra.com

Comment compiler un makefile avec MinGW?

Je suis novice en la matière. Je voulais juste savoir comment compiler un fichier makefile.am avec le compilateur MinGW en langage C. Dois-je sauvegarder tous mes fichiers dans MinGW\bin? parce que maintenant mes fichiers sont dans un répertoire différent.

Appréciez l'aide.

36
AAA

Extrait de http://www.mingw.org/wiki/FAQ :

Quelle est la différence entre make et mingw32-make? 

Le port de fabrication "natif" (c'est-à-dire: dépendant de MSVCRT) manque certaines fonctionnalités et a été modifié du fait de l'absence de POSIX sur Win32. Il existe également une version de make dans la distribution MSYS qui dépend du moteur d'exécution MSYS. Ce port fonctionne plus bien que make était censé fonctionner et donne moins de maux de tête lors de l'exécution. Sur cette base, les développeurs/mainteneurs/emballeurs de MinGW ont décidé qu'il serait préférable de renommer la version native de sorte que la version "native" et la version MSYS puissent être présentes simultanément, sans collision.

Alors, regardez dans le répertoire C:\MinGW\bin et assurez-vous d’abord que vous avez bien installé ce qui est exécutable (make.exe ou mingw32-make.exe).

Avant d’utiliser MinGW, vous devez ajouter C:\MinGW\bin; à la variable d'environnement PATH en utilisant les instructions mentionnées à http://www.mingw.org/wiki/Getting_Started/

Ensuite, allez dans votre répertoire, où vous avez le makefile et essayez d’utiliser mingw32-make.exe makefile.in ou simplement make.exe makefile.in (en fonction des exécutables dans C:\MinGW\bin).

Si vous souhaitez une solution basée sur une interface graphique, installez DevCPP IDE, puis refaites le processus.

29
askmish

Vous devez choisir activement d'installer MSYS pour obtenir le fichier make.exe. Donc, vous devriez toujours avoir au moins (le natif) mingw32-make.exe si MinGW a été installé correctement. Et si vous avez installé MSYS, vous aurez make.exe (probablement dans le sous-dossier MSYS).

Notez que de nombreux projets nécessitent tout d’abord de créer un fichier makefile (par exemple, à l’aide d’un script configure ou d’un fichier automake .am) et que cette étape nécessite MSYS ou cygwin. On se demande pourquoi ils se sont donné la peine de distribuer la marque indigène.

Une fois que vous avez le fichier Make, il n’est pas clair si l’exécutable natif nécessite un séparateur de chemin différent de celui défini par MSYS (barres obliques inverses ou barres obliques inversées). Tout fichier Make généré automatiquement est susceptible d’avoir des chemins de type Unix, en supposant que le make natif puisse les gérer, la sortie compilée devrait être la même.

8
jiggunjer

S'il vous plaît en apprendre davantage sur automake et autoconf.

Le fichier Makefile.am est traité par automake pour générer un fichier Makefile traité par make afin de construire vos sources.

http://www.gnu.org/software/automake/

0
lu_zero