use*_*893 16 c gcc header-files
我有这个简单的测试文件:
#include "stack.h"
int main()
{
Stack* stck = init_stack();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并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
Run Code Online (Sandbox Code Playgroud)
这两个文件位于同一目录中.但是当我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
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这里做错了什么?
谢谢,
Jon*_*ler 23
gcc -o testit teststack.c stack.c
Run Code Online (Sandbox Code Playgroud)
您需要编译两个C源文件并链接目标文件; 这一切都在一个命令中完成.