ejemplo:
c++ -Wall filefork.cpp -lrt -O2
Para gcc
versión 4.6.1, -lrt
debe ser después filefork.cpp de lo contrario, obtendrá un error de enlace.
Algunos gcc
mayores A la versión no le importa la posición.
Agregar -lrt
hasta el final de la línea de comandos de g++. Esto enlaza con la biblioteca compartida librt.so "Real Time".
Desde la versión 2.17 de glibc, la biblioteca que vincula -lrt
ya no es necesario.
El clock_*
ahora son parte de la biblioteca principal de C. Puede ver el historial de cambios de glibc 2.17 donde se realizó este cambio explica el motivo de este cambio:
+* 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.
Si decide actualizar glibc, puede verificar el rastreador de compatibilidad de glibc si le preocupa si podría haber algún problema al usar el glibc más nuevo.
Para verificar la versión de glibc instalada en el sistema, ejecute el comando:
ldd --version
(Por supuesto, si está utilizando la antigua glibc (<2.17), aún necesitará -lrt
.)