Mam problem z kompilacją kilku plików przy użyciu nagłówków. Oto podział mojego kodu:Błąd "Niezdefiniowane odniesienie do funkcji"
file1.c
#include "header.h"
int main() {
func1();
return 0;
}
file2.c
#include "header.h"
void func1() {
... function implementation ...
}
header.h
void func1();
Błąd otrzymuję to:
W funkcji
'main'
:
niezdefiniowana odniesienia do'func1'
Uwaga: jestem po prostu za pomocą prostego podziału jak moje 3 pliki są ustawione. Muszę uruchomić to z 3 plikami. Ustawiam/włączam wszystko poprawnie? Muszę użyć tej konfiguracji, ale nie jestem pewien, jak plik file.c uzyskuje odwołanie do faktycznej implementacji func1()
.
jakiego kompilatora używasz? czy możesz podać swoją instrukcję kompilatora? – mathematician1975
Jeśli używasz 'gcc -o program file2.c plik1.c', zmień to na' gcc -o program plik1.c plik2.c'. Zamówienie jest ważne. –
Hmm, twoje prawo, że to powinno działać pod normalną kompilacją gcc. Problem polega na tym, że ta kwestia na więcej pochodzi z bardzo dużego projektu, z setkami plików. Ale struktura problemu jest taka sama. Pomyślałem, że może nie włączyłem rzeczy właściwie, ale myślę, że tak nie jest. – Tesla