Zdar naskytol sa takýto problem nemôžem poskytnúť celý cod preto môj problem uvediem na jednoduchom príklade. Makefile nepracuje tak ako som čakal a po spustení
$make main gcc -std=c11 -Wall -Werror main.c -c -lm -o main.o gcc main.o -lm -o main main.o: In function `main': main.c:(.text+0x86): undefined reference to `xxxxx' main.c:(.text+0x11c): undefined reference to `yyyyy' main.c:(.text+0x141): undefined reference to `zzzzzzzz' main.c:(.text+0x16d): undefined reference to `uuuuuuuu' main.c:(.text+0x1b7): undefined reference to `ssssssss' collect2: error: ld returned 1 exit status <builtin>: recipe for target 'main' failed make: *** [main] Error 1
problém som asi pochopil ale neviem analyzovať kde je chyba. Je jasne je prekladač asi neviem ake premenné ma dať do funkcii alebo niečo také.Prekladač a prepinače
$ gcc -std=c11 -Werror -Wall -lm
A teraz sa chcem dostať k podstate veci názorný príklad : mian
#include "x.h" #include "y.h" #include <stdio.h> #include <stdbool.h> int main(){ struct nazov nazov = { .pole, .i, }; bool a=funkcia(nazov1);
druhy subor.c
#include "y.h" #include <stdio.h> bool funkcia(const struct nazov nazov) { . . . . }
y.h
struct nazov { char board[5][5]; int i; }; bool funkcia(const struct nazov nazov);
tak kde je chyba hmm .
Asi by si mal skompilovať aj subor.c obsahujúci mysteriózne funkcie s názvami ssssssss (a p.) na subor.o a ten následne prilinkovať pri linkovaní main.
v makefile kompilujem aj subor.c a prepínačom vytvorím subor.o ale nechapem "prilinkovať" k main-u ?
Viď prílohu.
diky pomohlo