7
votes

Référence non définie peut-être que Makefile est faux?

J'ai eu quelques problèmes plus tôt avec la déclaration de mon ensemble de registres de matray. Maintenant, je pense qu'il y a quelque chose qui ne va pas avec mon maquillage ou quelque chose comme ça.

Voici mon makefile: xxx

Il y a plus de fonctions que j'ai dans mon fichier set.c sont les fonctions que je testes en ce moment: xxx

et les erreurs que je reçoivent dans le terminal sont les suivantes: xxx


2 commentaires

Mettez en surbrillance et appuyez sur le bouton 0101 pour le formatage du code :)


Corrigé cela, la plupart d'entre eux. Toujours à utiliser pour le formatage.


3 Réponses :


0
votes

Si ceux-ci sont tous sur une ligne dans le maquillage: xxx

alors vous avez une macro EELEC dont la valeur est proj1 cc = gcc CFLAGS = -C -Wall , et vous n'avez pas cc ou cflags macro. cc a probablement une valeur par défaut, c'est pourquoi cela fonctionne beaucoup.


1 commentaires

Corrigé ça. Formatage lorsque j'ai soumis le message.



0
votes

Assurez-vous que vous avez inclus SET.H dans MAIN.C
Aussi, vous déclarez EELEC, mais utilisez EXEC ...


0 commentaires

8
votes

Les erreurs que vous obtenez sont des erreurs de liaison, vous indiquant que lors de la liaison de votre programme, le lien de liaison ne peut pas trouver une fonction nommée «CreeSet» (etc.). Ce n'est pas immédiatement évident pourquoi cela devrait être le cas, car il semble que vous incluez "set.o" dans la commande Build.

Pour résoudre les problèmes de construction, il est souvent utile de comprendre ce que la marque tente de faire, puis exécutez les commandes individuellement une à la fois afin que vous puissiez voir où les choses vont mal. "Make -N" va vous montrer quelles commandes "faire" couriraient, sans les faire réellement. Je m'attendrais à voir une commande comme: xxx

Essayez d'exécuter cela à la main et voyez où il vous obtient.


3 commentaires

Pour commencer, corrigez l'incohérence entre EXEC et EELEC . Sinon, cette commande est exactement ce que faire devrait faire en premier lieu, en fonction du makefile que vous nous avez montré. Si ce n'est pas le cas, utilisez "Make -N" pour savoir ce que est essayer de faire.


> Ce n'est pas immédiatement évident pourquoi cela devrait être le cas,


Je pensais que je devais taper "faire" pour tous les fichiers lorsque j'étais habitué à "faire assigner" pour des fichiers dans cette affectation. Merci pour l'aide!