RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | programmation
[DEV-C++] fonction : undefined reference to
LunaSev, le mer. 04 avr. 2007 à 18:06:01
Bonjour,
je débute en C, j'ai fait ma première fonction, et DEV-C++ refuse de compiler mon programme, que voici.

EX1.C
/* programme mettant à zéro la diagonale du milieu de la matrice */
#include <stdio.h>
#include "matrice.h"

main()
{
int **mat;
int ilig, icol, taille;
printf("Entrez la taille de la matrice : ");
scanf("%d", &taille);
decmatrice(mat, taille, taille);
initmatrice(mat, taille, taille);

for (ilig=0;ilig<taille;ilig++)
for (icol=0;icol<taille;icol++)
if (ilig==icol)
mat[ilig][icol] = 0;

affichmatrice(mat, taille, taille);
freematrice(mat, taille, taille);
}

matrice.c (certaines de ses fonctions ne servent pas dans le programme EX1, mais pour d'autres exercices. Ils ne gènent pas, si?):
/* Déclaration de la matrice */
int decmatrice(int **mat, int tlig, int tcol)
{
int ilig, icol;
mat = (int**)calloc(tlig, sizeof(int*));
for (ilig=0;ilig<tlig;ilig++)
mat[ilig] = (int*)calloc(tcol, sizeof(int));
return 0;
}
/* Initialisation de la matrice */
int initmatrice(int **mat, int tlig, int tcol)
{
int ilig, icol;
for (ilig=0;ilig<tlig;ilig++)
for (icol=0;icol<tcol;icol++)
{
printf("Entrez la valeur de la %dème ligne et de la %dème colonne :\n", ilig+1, icol+1);
scanf("%d", &mat[ilig][icol]);
}
return 0;
}
/* Affichage de la matrice */
int affichmatrice(int **mat, int tlig, int tcol)
{
int ilig, icol;
for (ilig=0;ilig<tlig;ilig++)
{
for (icol=0;icol<tcol;icol++)
printf("%d",mat[ilig][icol]);
printf("\n");
}
return 0;
}
/* Libération de la mémoire */
int freematrice(int **mat, int tlig, int tcol)
{
int ilig, icol;
for (ilig=0;ilig<tlig;ilig++)
free(mat[ilig]);
free(mat);
return 0;
}

matrice.h :
int decmatrice(int **mat, int tlig, int tcol);
int initmatrice(int **mat, int tlig, int tcol);
int affichmatrice(int **mat, int tlig, int tcol);
int freematrice(int **mat, int tlig, int tcol);


Quand je compile EX1.C, voici les erreurs que j'obtiens :

[Linker error] undefined reference to `decmatrice(int**, int, int)'
[Linker error] undefined reference to `initmatrice(int**, int, int)'
[Linker error] undefined reference to `affichmatrice(int**, int, int)'
[Linker error] undefined reference to `freematrice(int**, int, int)'
ld returned 1 exit status

j'ai lu quelque part qu'il fallait taper :
c -l(matrice)
dans "option du compilateur" -> ajouter ces commandes lors de l'éditeur de liens.
Dans ce cas, il compile (pas d'erreur), mais EX1.EXE n'est pas créé.
J'ai essayer de le mettre aussi dans "ajouter ces commandes lors de l'appel au compilateur", mais ça fait pareil.

Quelqu'un peut-il m'aider?
Merci Configuration: Windows XP
Internet Explorer 7.0


mamiemando
avr. 07
Suivant
REPONSES
mamiemando
avr. 07
LunaSev
avr. 07
mamiemando
avr. 07
LunaSev
avr. 07
mamiemando
avr. 07
LunaSev
avr. 07
mamiemando
avr. 07
Version Web
Réalisé par RedShift
no save