J'ai ce simple fichier de test:
#include "stack.h"
int main()
{
Stack* stck = init_stack();
return 0;
}
et stack.h
est défini comme suit:
#ifndef STACK_H
#define STACK_H
#define EMPTY_STACK -1
typedef struct stack
{
char ch;
struct stack* prev;
} Stack;
extern Stack* init_stack();
extern char pop(Stack*);
extern void Push(Stack*, char);
#endif
Ces deux fichiers se trouvent dans le même répertoire. Mais quand je fais gcc ..
pour le construire, je reçois toujours l'erreur ci-dessous:
$ ls
stack.c stack.h teststack.c
$ gcc -o testit teststack.c
/tmp/ccdUD3B7.o: In function `main':
teststack.c:(.text+0xe): undefined reference to `init_stack'
collect2: ld returned 1 exit status
Quelqu'un pourrait-il me dire ce que j'ai fait de mal ici?
Merci,
gcc -o testit teststack.c stack.c
Vous devez compiler les deux fichiers source C et lier les fichiers objets; cela fait tout en une seule commande.