příklad:
c++ -Wall filefork.cpp -lrt -O2
Pro gcc
verze 4.6.1, -lrt
musí být po filefork.cpp jinak se zobrazí chyba odkazu.
Některé starší gcc
verze se nestará o pozici.
Přidejte -lrt
na konec příkazového řádku g++. Toto odkazuje na sdílenou knihovnu librt.so "Real Time".
Od verze glibc 2.17 je knihovna propojující -lrt
již není vyžadováno.
clock_*
jsou nyní součástí hlavní knihovny C. Můžete se podívat na historii změn glibc 2.17, kde byla tato změna provedena, vysvětluje důvod této změny:
+* The `clock_*' suite of functions (declared in <time.h>) is now available
+ directly in the main C library. Previously it was necessary to link with
+ -lrt to use these functions. This change has the effect that a
+ single-threaded program that uses a function such as `clock_gettime' (and
+ is not linked with -lrt) will no longer implicitly load the pthreads
+ library at runtime and so will not suffer the overheads associated with
+ multi-thread support in other code such as the C++ runtime library.
Pokud se rozhodnete upgradovat glibc, můžete zkontrolovat sledování kompatibility glibc, pokud máte obavy, zda by při používání novějšího glibc nenastaly nějaké problémy.
Chcete-li zkontrolovat verzi glibc nainstalovanou v systému, spusťte příkaz:
ldd --version
(Samozřejmě, pokud používáte starý glibc (<2.17), budete stále potřebovat -lrt
.)