TUTO: Soucis de compilation "référence indéfinie"
Publié : 08 sept. 2016, 18:12
Bonjour bonjour...comme dit depuis longtemps, et parce que j’ai plusieurs éventuels nouveaux joueurs qui m’ont contactés par mp, j’ai pris le temps de faire un tuto en image pour résoudre les problèmes d’installation sous linux de type « /home/XXX/Bureau/client_sources/weather.c:356: référence indéfinie vers « make_drop »" pendant la compilation.
(et comme je suis pas informaticien, et que je sais pas comment on appelle précisément ce genre d’erreur… j’ai pas plus précis :-) … je précise que par la suite les termes que je risque d’utiliser vont faire bondir les plus calés que moi, mais je vais faire en sorte que ca soit le plus clair possible et que tout le monde puisse comprendre ...c’est l’important non ;-) )
Je profite d'ailleurs pour dire qu'il y aura peut être des erreurs si dessous, donc si quelqu'un veut corriger, qu'il n'hésite pas ...je partage juste ce qui a fonctionné pour moi!
Donc, une fois mon archive client_sources extraite, les dépendances installées et tout le patacaisse voici venu le temps, des rires et des champs et de la compilation...donc :
make -f Makefile.linux
ce qui chez moi donne les erreurs suivantes :
Je peux voir ici que les 2 fichiers qui posent problème sont :
minimap.c & weather.c
![Image](http://imgur.com/kcRj3NJl.png)
Je vais donc dans le fichier client_sources, je copie et colle les 2 fichiers en question en dehors du répertoire, et je supprime le fichier client_sources.
![Image](http://imgur.com/ZFlzcRIl.png)
J’ouvre ensuite les fichiers minimap.c et weather.c avec un éditeur de texte (j’utilise gedit pour ma part, qui à l’avantage de mettre en couleur les commandes dans le texte)
Je regarde les occurrences qui ont bloqué pendant la compilation
![Image](http://imgur.com/ZLY8rbbl.png)
Je recherche dans mes fichiers minimap.c et weather.c les occurrences en question
(donc chez moi is_within_radius, rotate_at_player, rotate_click_coords, pour le fichier minimap.c, et next_random_number, make_drop pour le fichier weather.c)
et j’ajoute « static » à l’occurrence en question
donf ctrl+F « is_within_radius » (ou toute autre outil de recherche)
![Image](http://imgur.com/8MOfJ9Ll.png)
Ces occurrences se retrouvent plus loins dans le fichier précédées de « if » ou « else if » ...là je n’y touche pas.
![Image](http://imgur.com/FZdWbvJl.png)
puis la même chose pour « rotate_at_player »
![Image](http://imgur.com/2kd5iNNl.png)
![Image](http://imgur.com/qKNtKjgl.png)
encore une fois je ne touche pas aux suivantes
![Image](http://imgur.com/JTAIfQbl.png)
etc etc. on répète l’opération pour toutes les occurrences.
J’enregistre mes fichiers.
J’ai donc 2 fichiers minimap.c et weather.c réécris. Je redécompresse mon archive client-sources, et je remplace les 2 fichiers qui posaient problème.
![Image](http://imgur.com/mkqtsYil.png)
Je relance ma compilation, donc make -f Makefile.linux … et ce coup ci, ca devrait marcher:)
(et comme je suis pas informaticien, et que je sais pas comment on appelle précisément ce genre d’erreur… j’ai pas plus précis :-) … je précise que par la suite les termes que je risque d’utiliser vont faire bondir les plus calés que moi, mais je vais faire en sorte que ca soit le plus clair possible et que tout le monde puisse comprendre ...c’est l’important non ;-) )
Je profite d'ailleurs pour dire qu'il y aura peut être des erreurs si dessous, donc si quelqu'un veut corriger, qu'il n'hésite pas ...je partage juste ce qui a fonctionné pour moi!
Donc, une fois mon archive client_sources extraite, les dépendances installées et tout le patacaisse voici venu le temps, des rires et des champs et de la compilation...donc :
make -f Makefile.linux
ce qui chez moi donne les erreurs suivantes :
![Image](http://imgur.com/6k391qjl.png)
Je peux voir ici que les 2 fichiers qui posent problème sont :
minimap.c & weather.c
![Image](http://imgur.com/kcRj3NJl.png)
Je vais donc dans le fichier client_sources, je copie et colle les 2 fichiers en question en dehors du répertoire, et je supprime le fichier client_sources.
![Image](http://imgur.com/ZFlzcRIl.png)
J’ouvre ensuite les fichiers minimap.c et weather.c avec un éditeur de texte (j’utilise gedit pour ma part, qui à l’avantage de mettre en couleur les commandes dans le texte)
Je regarde les occurrences qui ont bloqué pendant la compilation
![Image](http://imgur.com/ZLY8rbbl.png)
Je recherche dans mes fichiers minimap.c et weather.c les occurrences en question
(donc chez moi is_within_radius, rotate_at_player, rotate_click_coords, pour le fichier minimap.c, et next_random_number, make_drop pour le fichier weather.c)
et j’ajoute « static » à l’occurrence en question
donf ctrl+F « is_within_radius » (ou toute autre outil de recherche)
![Image](http://imgur.com/uaEIYfTl.png)
![Image](http://imgur.com/8MOfJ9Ll.png)
Ces occurrences se retrouvent plus loins dans le fichier précédées de « if » ou « else if » ...là je n’y touche pas.
![Image](http://imgur.com/FZdWbvJl.png)
puis la même chose pour « rotate_at_player »
![Image](http://imgur.com/2kd5iNNl.png)
![Image](http://imgur.com/qKNtKjgl.png)
encore une fois je ne touche pas aux suivantes
![Image](http://imgur.com/JTAIfQbl.png)
etc etc. on répète l’opération pour toutes les occurrences.
J’enregistre mes fichiers.
J’ai donc 2 fichiers minimap.c et weather.c réécris. Je redécompresse mon archive client-sources, et je remplace les 2 fichiers qui posaient problème.
![Image](http://imgur.com/mkqtsYil.png)
Je relance ma compilation, donc make -f Makefile.linux … et ce coup ci, ca devrait marcher:)