GNU/Linux >> Tutoriels Linux >  >> Linux

Erreur C++ :référence indéfinie à 'clock_gettime' et 'clock_settime'

exemple :

c++ -Wall filefork.cpp -lrt -O2

Pour gcc version 4.6.1, -lrt doit être après filefork.cpp sinon vous obtenez une erreur de lien.

Certains anciens gcc version ne se soucie pas de la position.


Ajouter -lrt à la fin de la ligne de commande g++. Cela renvoie à la bibliothèque partagée librt.so "Real Time".


Depuis la version 2.17 de la glibc, la bibliothèque liant -lrt n'est plus nécessaire.

Le clock_* font désormais partie de la bibliothèque C principale. Vous pouvez voir l'historique des modifications de la glibc 2.17 où cette modification a été effectuée explique la raison de cette modification :

+* 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 vous décidez de mettre à jour la glibc, vous pouvez vérifier le suivi de compatibilité de la glibc si vous vous demandez s'il y aurait des problèmes lors de l'utilisation de la nouvelle glibc.

Pour vérifier la version de glibc installée sur le système, exécutez la commande :

ldd --version

(Bien sûr, si vous utilisez l'ancienne glibc (<2.17), vous aurez toujours besoin de -lrt .)


Linux
  1. Erreur de compilation MPI :référence indéfinie à `sqrt' - Résolu

  2. Centos 4.8 et Glibc 2.5 ?

  3. Piège, erreur et écho de la ligne d'erreur ?

  4. Comment appeler la fonction C en C++, la fonction C++ en C (mélanger C et C++)

  5. Configuration et réglage d'OpenVAS dans Kali Linux

Comment compiler et exécuter des programmes C, C++ sous Linux

Explication :Redirection des entrées, des sorties et des erreurs sous Linux

Erreur fatale :appel à la fonction indéfinie curl_init()

Code pour malloc et gratuit

Libusb référence indéfinie à

Utilisation de sqrtf() en C :référence indéfinie à `sqrtf'