Я работаю над проектом C, реализующим некоторые универсальные контейнеры, и у меня возникает эта странная проблема при компиляции.Вот пример кода, который также повторяет ошибку.
foo.h
void fooprint(void);
foo.c
#include "foo.h"
#include <stdio>
void fooprint(void){
printf("bar");
return;
}
main.c
#include "foo.h"
int main(void){
fooprint();
return 0;
}
Я компилирую, набрав
gcc main.c -o main
и это то, что выводит терминал
Undefined symbols:
"_fooprint", referenced from:
_main in ccfMXGzj.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Я компилирую это в системе OSX, но также пытался компилировать на машине с красной шляпой с тем же эффектом.
Решение, вероятно, мучительно очевидно, но у меня было несколько друзей, с которыми я работаю, и они не могли увидеть проблему.Я много гуглял, но большинство проблем с символами обычно относятся к цели C.