Проблема с заголовком C:#include и «неопределенная ссылка»

Хорошо, я пытался работать с этим в течение самого долгого времени, и я просто не могу заставить его работать правильно. У меня есть три файла: main.c, hello_world.cи hello_world.h. По какой-то причине они плохо компилируются, и я просто не могу понять, почему...

Вот мои исходные файлы. Сначала привет _world.c:

#include <stdio.h>
#include "hello_world.h"

int hello_world(void) {
  printf("Hello, Stack Overflow!\n");
  return 0;
}

Затем привет _world.h, простой:

int hello_world(void);

И, наконец, main.c:

#include "hello_world.h"

int main() {
  hello_world();
  return 0;
}

Когда я помещаю его в GCC, вот что я получаю:

cc     main.c   -o main
/tmp/ccSRLvFl.o: In function `main':
main.c:(.text+0x5): undefined reference to `hello_world'
collect2: ld returned 1 exit status
make: *** [main] Error 1

Любой, кто может помочь мне? Я действительно застрял на этом, но я на 99 процентов уверен, что это действительно простое решение.

23
задан Job 28 April 2012 в 08:14
поделиться