Make: *** [src/fonction.o] Error 1
Spenzys
-
Spenzys -
Spenzys -
Bonjour,
Je souhaite créer un fichier objet à partir d'un fichier .c en utilisant un makefile contenant le code suivant:
(il y a effectivement bien une tabulation avant le gcc mais elle ne s'affiche pas sur le forum)
mais lorsque j'exécute "make src/fonction.o", j'obtient ceci:
Je précise que mon dossier include contient bien mon fichier.h et que lorsque j'execute "gcc -c src/fonction.c -I include" directement dans le compilateur, tout marche parfaitement.
Merci de votre aide par avance!!
Je souhaite créer un fichier objet à partir d'un fichier .c en utilisant un makefile contenant le code suivant:
src/fonction.o : src/fonction.c
gcc -c src/fonction.c -I include
(il y a effectivement bien une tabulation avant le gcc mais elle ne s'affiche pas sur le forum)
mais lorsque j'exécute "make src/fonction.o", j'obtient ceci:
src/fonction.c:2:19: fatal error: types.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'src/fonction.o' failed
make: *** [src/fonction.o] Error 1
Je précise que mon dossier include contient bien mon fichier.h et que lorsque j'execute "gcc -c src/fonction.c -I include" directement dans le compilateur, tout marche parfaitement.
Merci de votre aide par avance!!
Configuration: Macintosh / Chrome 78.0.3904.97
3 réponses
-
C'est pourtant clair, tu as écris ton makefile, de façon à se qu'il aille chercher un dossier ou un fichier.. or selon le code retour, types.h n'existe pas. Je t'invite à partager ton code entier (makefile) s'il y a, mais aussi l'arborescence COMPLETE de ton projet.
Merci. -
Ce qui m'étonne le plus après reflexion c'est de voir que ton fichier .o que tu cherches à crée n'a aucune dépendance de header (.h) .. essaye de rajouter les .h après ta premiere ligne regroupant cible et dependance..
-
Voici mon makefile (j'ai ajouté des dépendances .h)
src/fonction.o : src/fonction.c
gcc -c src/fonction.c -I include
src/fonction.c : include/types.h
voici mon fichier types .h:
#ifndef TYPES
#define TYPES
struct point3D{
double x;
double y;
double z;
};
struct point2D{
double x;
double y;
};
#endif
et voici mon fichier fonction.c:
#include <stdio.h>
#include "types.h"
struct point3D Lorentz( struct point3D u, double sigma,double rho,double beta, double dt)
{
// determine la vitesse a l'instant t
struct point3D v;
v.x=sigma*(u.y-u.x);
v.y=u.x*(rho-u.z)-u.y;
v.z=u.x*u.y-(beta*u.z);
// Actuallise la position du point
u.x=u.x+v.x*dt;
u.y=u.y+v.y*dt;
u.z=u.z+v.z*dt;
return(u);
}
struct point2D Lotka_Volterra( struct point2D u, double alpha, double beta,double delta, double gamma, double dt )
{
// dterminae la vitesse
struct point2D v;
v.x=(alpha*u.x)-(beta*u.y);
v.y=(delta*u.x)-(gamma*u.y);
// Actuallise la position du point
u.x=u.x+v.x*dt;
u.y=u.y+v.y*dt;
return(u);
}
double Bifurcation_fourche( double u,double mu, double alpha, double dt)
{
// dterminae la vitesse
double v;
v=mu*u+alpha*(u*u*u);
// Actuallise la position du point
u=u+v*dt;
return(u);
}
Le projet est structuré comme suit:
projet/makefile.mk
projet/include/types.h
projet/src/fonction.c
sachant que je cherche à creer fonction.o dans le fichier src.-
-
Merci pour votre réponse
Il y avait bien une tabulation, c'était effectivement juste un problème d'affichage. Par contre j'ai essayé la commande suggérée mais mon problème reste le même
Est-il possible que je fasse une erreur lorsque j'utilise le makefile avec le terminal? J'utilise la commandemake src/fonction.o
-