Échec de la compilation avec la commande make


0

Je travaille sur cygwin. La plupart des commandes Unix fonctionnent parfaitement. De plus, je peux compiler avec g ++ et gcc, mais j'obtiens l'erreur ci-dessous quand j'exécute make:

/cygdrive/b/tpm/src
$ make -f makefile.mak
"c:/program files/mingw/bin/gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c - 
DTPM_WINDOWS -I"c:/program files/MinGW/include" -I"c:/program 
files/openssl/include" -I../utils -I. -DNO_BIT_FIELD_STRUCTURES AlgorithmCap.c -o AlgorithmCap.o
make: *** [makefile.mak:85: AlgorithmCap.o] Error 1

Notez que j'ai le package make téléchargé et que j'ai ajouté le bin au chemin.


C: \ cygwin, le makefile.mak, voulez-vous dire par son option include this? (CRYPTO_SUBSYSTEM = openssl incluent makefile-common)

2
c:/program files/mingw/bin/gcc.exen'est pas un compilateur cygwin ou un compilateur croisé. Vous mélangez cygwin make avec un compilateur non cygwin, et cela ne fonctionne pas.
Matzeri

Comment je le répare ? parce que j'ai installé cygwin et mingw

@Biswapriyo line 85ème `$ (CC) $ (CCFLAGS) $ <-o $ @`

@Biswapriyo C: \ Programmes communs \ Fichiers communs \ Oracle \ Java \ javapath; C: \ Windows \ system32; C: \ Fenêtres, C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1. 0 \; c: / programmes / mingw / bin, c: /programfiles/mingw/bin/gcc.exe; C: \ gnuwin32 \ bin, C: \ ProgramFiles \ GnuWin3 \ bin; C: \ Program Files \ GnuWin32 \ bin \ make.exe; C: \ cygwin \ bin;

Réponses:


0

L'erreur principale est indiquée dans cette ligne:

$ make -f makefile.mak "c: / programmes / mingw / bin / gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c -

Cette erreur montre que le cygwin maketrouve le chemin du compilateur C, c'est- $(CC)à- dire dans C:\Program Files\mingw\bin\gcc.exe. Ici, OP a installé mingw et cygwin sur la même machine. Lorsque le programme d'installation correspondant installe cygwin et mingw, il ajoute le /bindossier dans %PATH%la variable d'environnement système. Par conséquent, au moment de la compilation, le cygwin makerécupère le premier gcc.exechemin qui se trouve dans le répertoire mingw et l'erreur apparaît.

Pour éliminer la confusion du chemin, la %PATH%variable d'environnement doit être configurée correctement. Vous trouverez plus de détails sur la modification des variables d'environnement dans les liens ci-dessous. Ici, je donne un aperçu simple. Ouvrir la boîte de dialogue Exécuter avec Win+ R. Tapez- control.exele et appuyez sur Entrée. Sélectionnez Système et sécurité> Système> Paramètres système avancés> Variables d'environnement> Variables système> Chemin.

Variables_système

Double-cliquez sur la variable "Path". Vous pouvez voir une fenêtre "Editer la variable d'environnement". Supprimer les deux chemins C:\cygwinet C:\Program Files\mingw\binavec la Deleteclé.

Edit_Path_Variable

Créez maintenant deux fichiers de commandes, cygwin.bat et mingw.bat. Cela peut être fait dans un fichier, je viens de rendre les choses simples. Copiez les lignes suivantes dans ces fichiers de commandes correspondants. Les commandes vont configurer l'environnement à compiler.

  • Pour cygwin:
@echo off
C:
chdir C:\cygwin\bin
C:\cygwin\bin\bash.exe --login -i
  • Pour mingw:
@echo off
set PATH=C:\Program Files\mingw\bin;%PATH%
cmd /k

Questions / Réponses similaires:


@ bayern6 Oh, j'ai raté quelque chose dans Mingw. BTW quel environnement utilisez-vous cygwin ou mingw? Avez-vous mingw en 64 bits.
Biswapriyo

Pas ça. Je veux dire avec make -f makefile.mak. essayez aussi de faire d’autres projets comme menthe dans GitHub.
Biswapriyo

/ cygdrive / b / tpm / src $ make -f makefile.mak "c: / fichiers de programme / mingw / bin / gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c -DTPM_WINDOWS -I "c: / fichiers de programme / MinGW / include "-I" c: / fichiers de programme / openssl / include "-I ../ utils -I. -DNO_BIT_FIELD_STRUCTURES AlgorithmCap.c -o AlgorithmCap.o make: *** [makefile.mak: 85: AlgorithmCap.o] Erreur 1

chemin imgur.com/a/EAI4ID3 : C: \ ProgramFiles \ CommonFiles \ Oracle \ Java \ javapath;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1. 0 \

Faites défiler la section variable système. Avez-vous vu des chemins avec "mingw"? Sinon, je n'ai aucune idée.
Biswapriyo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.