2010-10-30 17 views
1

J'exécutant la commande suivante:Comment trouver le numéro de ligne d'une erreur dans un Makefile?

font makefile.gcc -f

Et la sortie est:

Marque: -c: Command not found

Comment puis-je savoir quelle ligne cause l'erreur? Le makefile est long de centaines de lignes et il n'y a aucun moyen de le comprendre autrement.

J'ai essayé le commutateur -d, mais cela n'a pas imprimé d'informations utiles.

+0

Sur quel système travaillez-vous? Il y a quelques astuces qui pourraient aider à le savoir. Que dit la course à sec? Peut-être que vous obtenez plus d'informations de cela. (make -n -f makefile.gcc) – Knubo

+0

@Knubo: Je suis en train de compiler Ubuntu avec Mingw-w64. (La sortie de l'exécution sèche n'est pas utile car certaines des cibles dépendent des commandes exécutées.) –

Répondre

0

Il semble que le problème est que le makefile contient des chemins avec « \ » en eux et que je suis en cours d'exécution sur Linux, qui va être un problème.

Je suis toujours working on a solution for that.

+0

@Knubo - vous l'avez compris :) –

+0

Y a-t-il seulement un fichier makefile ou y a-t-il un script configure avec le projet? ? Peut-être que vous pouvez recréer le fichier makefile sur la plate-forme Unix. En ce qui concerne les chemins, les chemins d'accès sur une plate-forme Windows n'auraient pas beaucoup de sens sur une plate-forme Linux, donc le simple fait de remplacer une requête ne vous rapportera probablement pas où vous le souhaitez. – Knubo

+0

@Knubo: Voici le problème ... la bibliothèque que je compile est multiplate-forme et * vient * avec un script 'configure' pour Linux/Unix - cependant, j'essaie d'utiliser Mingw64 pour compiler la bibliothèque pour Win64. Le problème est que le fichier makefile de la bibliothèque pour Win64 utilise des chemins avec '\' dans ceux-ci. Je peux en fait le compiler avec Mingw64 ** sur Windows **, mais essayer de le compiler avec Mingw64 sous Linux ne fonctionne pas. –