来自另一个文件的对 "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++ 项目应该在幕后为您完成)

您看到的确切错误是什么