Subor prva.h
#ifndef PRVA_H #define PRVA_H void prva(void); #endif
Subor prva.c
#include<stdio.h> #include<prva.h> void prva(void) { printf("prva\n"); }
Kompilujem ju takto
gcc -I. -Wall -pedantic -c -o prva.o prva.c ar cru libprva.a prva.o ranlib libprva.a
Chcem ju otestovat programom test.c kde chcem volat funkciu prva():
#include<stdio.h> #include<prva.h> int main(void) { printf("test\n"); prva(); return 0; }
Program test.c kompilujem takto a toto hlasi:
$ gcc -I. -L. -lprva -pedantic test.c -o test /tmp/ccumNzuH.o: In function `main': test.c:(.text+0x1e): undefined reference to `prva' collect2: ld returned 1 exit status
Uz sa s tym hram cely den a neviem prist na to kde je chyba. Urcite je to nejaka blbost. Ked ju skompilujem ako zdielanu (cez -shared a -fpic ako .so) tak to funguje. Neviete niekto kde je chyba? Vsetky subory su v jednom adresari takze s
cestami by snad problem nemal byt. Vdaka.
Takze, kniznice na koniec.