Bonjour,
Voila, je reprends un source en C sous Mandrake , pour faire tourner une carte d'acquisition.
Les fichiers include sont en notation #include<file.h>
sauf deux d'entre eux, particuliers au système qui sont
en notation #include "file.h"
Je n'ai pas trouvé les différences dans une doc. Je crois que <> lui demande d'aller chercher dans des répertoires standard de gcc ???
Il y a aussi une notation ../../include dans le Makefile. Est-ce qu'il faut copier les fichiers .h dans un répertoire home/include ?
Est-ce qu'il faut faire des liens pour que gcc trouve les lib ?
Je ne pas trouvé de doc relatant une méthode générale, sauf man gcc, mais cela doit être en page 1024...Le source était sur un autre PC, j'ai tout ré installé, et maintenant, apparemment il n'est pas tout à fait "portable".
Merci de m'éclairer de façon générale sur ces recherches de chemin et la "bonne" manière de référencer tout cela.
# la différence...
Posté par Sylvain Rampacek (site web personnel) . Évalué à 6.
et le include <toto.h> indique bien qu'il faut aller chercher dans les chemins par défaut de gcc ou des bibliothèques standards.
ensuite, si tu as include "rep/toto.h", cela veut donc dire inclure le fichier toto.h contenu dans le sous-dossier rep de ton réperoire contenant les .c
[^] # Re: la différence...
Posté par adibou . Évalué à 6.
> as ton .c (ou cpp) (en gros).
>
pas que en gros, les "" indiquent qu'il faut chercher avec un chemin relatif a partir de la ou est le .c
> et le include <toto.h> indique bien qu'il faut aller chercher dans les chemins par > défaut de gcc ou des bibliothèques standards.
>
pas seulement, en fait avec des <>, le compiateur cherche dans tous les chemins definis avec l'option -I (d'ou les ../../include dans le makefile) ; quand il a parcouru tous les repertoires indiques par -I, il cherche dans les "standard system include directories"
[^] # Re: la différence...
Posté par Florent C. . Évalué à 4.
Puis, si le compilateur ne trouve pas le fichier en question, il le traite comme s'il était inclus avec des < et > ...
[^] # MERCI A VOUS 2
Posté par machpro . Évalué à 2.
J'ai mis les chemins à la main dans le make et maintenant cela compile correctement. Les include sont par contre notés en <> et "" dans le C
Je vais ensuite faire des essais en incorporant les chaînes ../ pour bien me convaincre du mécanisme. Ce problème est donc résolu.
Ce qui n'est pas résolu-pour moi- c'est de trouver une portabilité en fonction du PC ou cela s'installe.
C.Blaess dans son livre sur C++, fournit un programme C permettant de changer l'environnement, mais c'est assez lourd en apparence.
D'autre part on m'a conseillé les scripts, je recherche dans cette direction
Cordialement
[^] # Re: MERCI A VOUS 2
Posté par liberforce (site web personnel) . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.