GNU/Linux >> Tutoriales Linux >  >> Linux

Error de C++:referencia indefinida a 'clock_gettime' y 'clock_settime'

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 .)


Linux
  1. CodeBlocks:un IDE de C, C++ y Fortran gratuito y multiplataforma

  2. C ++ nuevo operador de seguridad de subprocesos en linux y gcc 4

  3. Error fatal:llamada a la función indefinida curl_init()

  4. C++ Boost:referencia indefinida a boost::system::generic_category()

  5. Usando sqrtf() en C:referencia indefinida a `sqrtf'

Cómo compilar y ejecutar programas C, C++ en Linux

Llamada a función indefinida simplexml_load_file() – Error de PHP [Resuelto]

Explicado:entrada, salida y redirección de errores en Linux

Código para malloc y gratis

Libusb referencia indefinida a

referencia indefinida al error del símbolo '_ZN5boost6system15system_categoryEv'