2017-10-10 10 views
0

J'ai ce code c que je suis en charge d'accélérer. Le code est mis sur un RasPi et compilé. Il y a deux ans, le code a été mis en place et compilé et cela fonctionne. Maintenant, quand j'essaie de compiler le même fichier, il est dit qu'il existe une référence indéfinie à 'clock_gettime'. Je l'ai cherché et cette fonction est définie dans le temps. Je pensais que peut-être cet en-tête n'était pas installé ou appelé dans le code. Au début du code, il dit #include donc ce n'est pas le problème. J'ai vérifié si l'en-tête time.h était installé sur le RasPi et il était là avec les autres en-têtes. Je l'ai ouvert avec nano et la fonction clock_gettime a été définie, donc ce n'est pas le problème. Que devrais-je faire? Comment puis-je résoudre ce problème?Problèmes d'en-tête en C

+1

Avez-vous lié avec '-lrt'? – PSkocik

+1

"référence indéfinie" est un problème de lien, pas un problème de compilation. Je pense que vous devez lier avec '-lrt' – yano

+0

comment puis-je faire cela? –

Répondre

1

clock_gettime(2):

#include <time.h>
...
Lien avec -lrt (uniquement pour les versions glibc avant 2.17).

+0

Pouvez-vous expliquer -lrt ou me lier à quelque part qui l'explique? –

+0

@GordonJohnnyElder 'cc -o votre_output_executable your_sources_or_object_files ... -lrt' où' cc' est 'gcc' ou' clang' ou un compilateur similaire. – PSkocik

+0

Je ne comprends pas très bien ce que vous dites. Ce que je pense que vous dites est que si j'utilise gcc je devrais dire dans la ligne de commande "gcc filename.co-outfile -lrt time.h" avec le nom de fichier étant le fichier à compiler et outfile étant le fichier compilé. Est-ce exact? –