2008-11-03 10 views
14

kompilacji programu w systemie Linux, który wywołuje funkcje programatora POSIX (np timer_create, timer_settime) zwraca błędy, takie jak:Co potrzebne biblioteki być połączone za timer_create, timer_settime i innych czasowych związanych z funkcjami

 
In function `foo': 
timer.c:(.text+0xbb): undefined reference to `timer_create' 
timer.c:(.text+0x187): undefined reference to `timer_settime' 
collect2: ld returned 1 exit status 

Które biblioteki zrobić Muszę połączyć?

Odpowiedz

3

Powinno to zostać udokumentowane na stronie podręcznika. Biorąc pod uwagę, że to nie jest dodawanie -lrt.

22

Skompiluj go z opcją -lrt. Zostanie skompilowany.

2

spróbuj wykonać następujące czynności:

gcc -lrt 
3

-lrt zmusza link ale trzeba mieć biblioteki w czasie rzeczywistym w miejscu, zanim będzie można link do niego. Zazwyczaj jest on dołączany automatycznie, ale jeśli nie, musisz zainstalować bibliotekę czasu rzeczywistego za pomocą apt-get. Wtedy będzie można do niej link na następującej (lub podobnej) Lokacja:

/lib/i386-linux-gnu/librt.so.1

Jeśli używasz CodeBlocks iz jakiegoś powodu -lrt nie obejmuje go, można dodać powyższy ścieżka biblioteki & filename stosując następującą sekwencję menu:

Project->Build Options->Linker Settings->Link Libraries->Add

2

można spróbować gcc -o mytemer mytimer.c -lrt to działa na mnie tak, ale nie w tej kolejności gcc * LRT mytimer.c -o mytimer