Ubuntu rusage error

Je suis en train de porter un code vraiment vieux (et massif) de CentOS 6 à Ubuntu 14.04. Notez que j’ai installé l’ancienne version attendue de gcc, des références de lieur fixes, etc.

Ma tentative de construction progresse, mais je suis bloqué sur une chose. Un fichier C tente de créer une structure de type rusage , mais l’environnement Ubuntu me donne l’erreur suivante: error: storage size of 'rusage' isn't known

Autant que je sache, tous mes chemins semblent corrects. J’ai même consulté les fichiers système time.h et resource.h de chaque système (CentOS où cela fonctionne et Ubuntu où il ne fonctionne pas). Il semble y avoir des références à un fichier wait.h où le rusage est défini, de la même manière.

Que pourrais-je éventuellement manquer de plus dans mon environnement Ubuntu?

Edit: Ajout de plus de détails MCVE-ish …

Ma construction s’arrête avec l’erreur suivante:

vmodem.c:6747: error: storage size of 'rusage' isn't known

Cette ligne dans le fichier est simplement:

 struct rusage rusage 

Les inclus inclus sont également dans ce fichier ( , , etc.)

Je ne sais pas quoi d’autre je peux fournir dans ce cas …

La page de getrusage de getrusage sur CentOS 6 et Ubuntu 14.04 indique qu’il faut inclure et .

Vous avez mentionné que vous incluez . Il a une struct rusage; déclaration en struct rusage; de sorte que les déclarations de wait3 et wait4 soient valides, mais cette déclaration forward ne suffit pas pour vous permettre de déclarer une structure de type rusage .

Les choses fonctionnent sur CentOS 6 car le wait.h CentOS 6 contient une ligne #include , et resource.h déclare entièrement la struct rusage , mais le wait.h Ubuntu 14.04 ne contient pas de #include ligne.

Merci à coredump et Eugene Sh. pour les astuces … l’ajout de #include était l’astuce.

C’est sûrement quelque chose qui a fonctionné dans CentOS mais pas avec Ubuntu. Quoi qu’il en soit, le simple fait d’inclure le fichier d’en-tête de ressource ne devrait pas faire de mal.