Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/10/2016, à 18:34

DonutMan75

Plusieurs headers pour une librairie donnée ?

Bonsoir à tous,
j'ai une petite question d'ordre général...

Pourquoi sur Ubuntu, il existe en général plein de headers différents pour une même bibliothèque ?
Lequel est effectivement utilisé par mes programmes quand je fais un include ?

Merci d'avance smile

Donut

Quelques exemples :

$ find /usr/include/ -name 'errno.h'
/usr/include/i386-linux-gnu/asm/errno.h
/usr/include/i386-linux-gnu/bits/errno.h
/usr/include/i386-linux-gnu/sys/errno.h
/usr/include/asm-generic/errno.h
/usr/include/errno.h
/usr/include/linux/errno.h
$ find /usr/include/ -name 'stdio.h'
/usr/include/c++/4.6/tr1/stdio.h
/usr/include/i386-linux-gnu/bits/stdio.h
/usr/include/sharutils/stdio.h
/usr/include/stdio.h

Hors ligne

#2 Le 28/10/2016, à 20:39

claudius01

Re : Plusieurs headers pour une librairie donnée ?

Bonsoir,

Effectivement, mais généralement une inclusion "standard" de

#include <errno.h>
#include <stdio.h>
...

suffit (pour les exemples présentés ;-)...

NB: Cela n'est pas dû à Ubuntu, et pourquoi se prendre la tête avec cette redondance qui n'est pas un problème mais plutôt une subtilité d'installation de ces headers qui somme toute, ne sont pas si différents que cela...

Hors ligne

#3 Le 05/11/2016, à 17:37

DonutMan75

Re : Plusieurs headers pour une librairie donnée ?

Bonjour,
merci pour cette réponse smile
Mais c'est vrai que j'aurai aimé en savoir un peu plus sur cette "subtilité" d'installation. En particulier, c'est toujours intéressant de regarder dans le header comment les différentes fonctions ou structures sont définies. Bon après, je suppose que "man toto" fait tout aussi bien l'affaire.

Bonne journée à tous et à bientôt !

D.

Hors ligne

#4 Le 05/11/2016, à 19:03

Krabosek

Re : Plusieurs headers pour une librairie donnée ?

Bonsoir,

A priori comme ça, le compilateur va chercher les headers dans /usr/include.
Il ne descend pas dans l'arborescence .

Ce genre de déclaration fonctionne :

#include <QDialog>
#include <QDebug>
#include <QtGlobal>
#include "dvdcss/dvdcss.h"

Celle là non

#include <QDialog>
#include <QDebug>
#include "dvdcss/dvdcss.h"

Voilà voilà...


Bientôt tu auras tout oublié; bientôt tous t'auront oublié.
Marc-Aurèle

Hors ligne