来自另一个文件的对 "Fucntion" 的未定义引用
undefined reference to "Fucntion" from another file
我不知道问题出在哪里,我已经在头文件中定义了函数,我在主文件中使用 include "stack.h" 调用它,
对 `init' 的未定义引用,所有 3 个都位于同一个文件中
主要
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
int main()
{
struct Stack s1;
int choice;
init(&s1,5);
stack.c
#include "stack.h"
void init(struct Stack *st, int size)
{
st->pin = (int *) malloc(size * sizeof(int));
st->head = 0;
st->size = size;
}
int push(struct Stack *st, int element)
{
if (st->head == st->size)
{
return 0;
}
st->pin[st->head] = element;
st->head++;
return 1;
}
int pop(struct Stack *st, int *element)
{
if(st->head == 0)
{
return 0;
}
st->head--;
*element = st->pin[st->head];
return 1;
}
stack.h
#ifndef stack
#define stack
struct Stack{
int *pin;
int head;
int size;
};
void init(struct Stack *st, int size);
int push(struct Stack *st, int element);
int pop(struct Stack *st, int *element);
#endif
您是否正在使用 Linux makefile/vc++ 项目来构建可执行文件。
在 linux makefile 的说法中,您需要 link stack.o 和 main.o(通过编译 stack.c 和 main.c 创建)到创建最终的可执行文件。 (vc++ 项目应该在幕后为您完成)
您看到的确切错误是什么
我不知道问题出在哪里,我已经在头文件中定义了函数,我在主文件中使用 include "stack.h" 调用它, 对 `init' 的未定义引用,所有 3 个都位于同一个文件中
主要
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
int main()
{
struct Stack s1;
int choice;
init(&s1,5);
stack.c
#include "stack.h"
void init(struct Stack *st, int size)
{
st->pin = (int *) malloc(size * sizeof(int));
st->head = 0;
st->size = size;
}
int push(struct Stack *st, int element)
{
if (st->head == st->size)
{
return 0;
}
st->pin[st->head] = element;
st->head++;
return 1;
}
int pop(struct Stack *st, int *element)
{
if(st->head == 0)
{
return 0;
}
st->head--;
*element = st->pin[st->head];
return 1;
}
stack.h
#ifndef stack
#define stack
struct Stack{
int *pin;
int head;
int size;
};
void init(struct Stack *st, int size);
int push(struct Stack *st, int element);
int pop(struct Stack *st, int *element);
#endif
您是否正在使用 Linux makefile/vc++ 项目来构建可执行文件。
在 linux makefile 的说法中,您需要 link stack.o 和 main.o(通过编译 stack.c 和 main.c 创建)到创建最终的可执行文件。 (vc++ 项目应该在幕后为您完成)
您看到的确切错误是什么