未定义的对的引用

我有这个简单的测试文件:

#include "stack.h" int main() { Stack* stck = init_stack(); return 0; } 

stack.h定义如下:

 #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 

这两个文件位于同一目录中。 但是当我做gcc ..来构建它时,我不断收到以下错误:

 $ 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 

谁能告诉我这里做错了什么?

谢谢,

  gcc -o testit teststack.c stack.c 

您需要编译两个C源文件并链接目标文件; 这一切都在一个命令中完成。