esempio:
c++ -Wall filefork.cpp -lrt -O2
Per gcc
versione 4.6.1, -lrt
deve essere dopo filefork.cpp altrimenti ottieni un errore di collegamento.
Alcuni gcc
precedenti versione non si preoccupa della posizione.
Aggiungi -lrt
alla fine della riga di comando di g++. Questo collega alla libreria condivisa "Real Time" di librt.so.
Dalla versione 2.17 di glibc, la libreria che collega -lrt
non è più richiesto.
Il clock_*
ora fanno parte della libreria C principale. Puoi vedere la cronologia delle modifiche di glibc 2.17 in cui è stata apportata questa modifica e spiega il motivo di questa modifica:
+* 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.
Se decidi di aggiornare glibc, puoi controllare il tracker di compatibilità di glibc se sei preoccupato se ci sarebbero problemi usando il nuovo glibc.
Per controllare la versione di glibc installata sul sistema, eseguire il comando:
ldd --version
(Ovviamente, se stai usando la vecchia glibc (<2.17) avrai ancora bisogno di -lrt
.)