До недавнего времени у меня не было реальной "потребности" в этом, но я пытаюсь выяснить, как работает разделение функций на несколько заголовков / файлов. Кажется, даже самая простая вещь не работает так, как я думал.
У меня есть следующий код:
main.c
#include <stdio.h>
#include "hdr.h"
int main(void)
{
test();
return 0;
}
hdr.h
int test(void);
hdr.c
int test(void)
{
printf("Hello, world!\n");
}
Когда я пытаюсь скомпилировать это с Pelles C ( cc ), я получаю ошибку "unresolved external (s)":
main.c
polink.exe main.obj
POLINK: error: Unresolved external symbol '_test'.
POLINK: fatal error: 1 unresolved external(s).
Командная строка, которую я использую:
cc -x main.c
Почему это? Могу ли я что-то изменить в коде, чтобы не касаться командной строки? Или мне всегда нужно сначала создавать отдельные заголовки отдельно?