RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 fractionner son code

Forum : C - CONSOLE
Sous Catégorie : Console
Type du sujet : Sujet Normale
FAQ : FAQ C - CONSOLE

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C - CONSOLE

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
thechief
Membre régulier
Inscrit : 16/07/2004
Messages : 65
Message
#87984
Posté le 13/02/06 à 11:42
Bonjour,

J'ai un projet qui comporte plusieurs fichiers sources, ainsi que des fichiers headers (.h) Mais comme ça fait un long moment que je n'y ai pas regardé, je suis un peu perdu pour la compilation. Le but était de permettre une compilation plus légère (pas d'obligation de recompiler le projet entier à chaque fois).
Par exemple dans mon fichier main.c je dois inclure des fonctions d'autres fichiers (video.c et lib.c), ces même fichiers possèdent des fichiers entêtes (.h). Si je ne me trompe pas les fichiers entetes doivent-être inclus dans leur fichier source respectif, puis les fichiers sources dans le fichiers source principal ?
Vous suivez toujours Smiley ?

Pour la compilation je m'y prend comment ?

merci

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

fredzool
Membre régulier
Inscrit : 15/11/2004
Messages : 68
Message
#87985
Posté le 13/02/06 à 11:45
si dans ton main tu utilises des fonctions de lib.c c dans ton main.c il faut que tu fasses #include "lib.h"

bonne chance

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

sebsheep
Membre du club
Chef de projet(s) :
- SejourAdmin

Inscrit : 27/03/2005
Messages : 509
Message
#88035
Posté le 13/02/06 à 17:07
[quote]si dans ton main tu utilises des fonctions de lib.c c dans ton main.c il faut que tu fasses #include "lib.h" [/quote]

oui et tu dois AUSSI le mettre dans lib.c evidement. En fait il faut le mettre partout où tu appelles des fonctions qui sont dans lib.c. Normalement si tu as bien fais ton .h, les fonctions et variables que tu as définies ne peuvent pas etre définies 2 fois (grace au #ifndef ...)
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :[b]Seb, c'est bien![/b]

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

thechief
Membre régulier
Inscrit : 16/07/2004
Messages : 65
Message
#88055
Posté le 13/02/06 à 19:15
exact ...
J'ai un autre prob, mes fichiers headers ne sont pas dans le même rep que mes sources donc pour les inclure, je fais #include <rep/header.h>, ça marche pas. Je les ai donc mises dans le même rep en les incluant différement #include "header.h" et bien ça ne change rien, à la compil j'ai des érreurs du style la fonction n'est pas reconnue etc ... quel peut être le prob ?

merci

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

sebsheep
Membre du club
Chef de projet(s) :
- SejourAdmin

Inscrit : 27/03/2005
Messages : 509
Message
#88070
Posté le 13/02/06 à 19:56
tu travailles avec quoi??? Et c'est quoi comme erreur?pas reconnue ou pas déclarée ta fonction ou Linke_error(ca je viens de m'en prendre 20 en une seule compilation ca fait peur...)?
Si t'as fait un projet, met tout dans le projet(les.h et .c), l'IDE (si t'en utilise un) fais tous les liens pour toi.

Petite chose qui m'est arrivé aussi avec Dev-cpp:
Qd tu fais un projet en C et que comme un boulet tu n'enregistres pas ton projet en C mais en C++, t'es obligé de décocher dans les options du projet, onglet fichier, "compiler en tant que C++".
Sinon ca fait des erreurs de linkage.

voila tiens nous au courant (pas trop d'amperes qd mm hein?.... Smiley désolé pour cette vanne pourrie....)
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :Seb, c'est bien!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

thechief
Membre régulier
Inscrit : 16/07/2004
Messages : 65
Message
#88248
Posté le 15/02/06 à 16:42
C'est pas grave sebsheep ça m'arrive aussi Smiley
En fait ce projet je travaille sous linux, avec un éditeur de texte tout bête qui me colorie quand même la syntaxe, et dérrière j'utilise gcc pour compiler !
Alors l'érreur ça donné quelque chose comme "first use of this function" donc c'est undeclared si mes souvenirs sont bons !

merci
++

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

sebsheep
Membre du club
Chef de projet(s) :
- SejourAdmin

Inscrit : 27/03/2005
Messages : 509
Message
#88265
Posté le 15/02/06 à 17:45
faut mettre tes
#includes "monheader.h"

dans CHAQUE .c dans le quel tu utilises ces fonctions...
C'est a dire : si tu l'as fait dans ton main.c et que t'as un autre fichier "fichier1.c" dans le quel tu utilises tes fonctions qui sont dans "monheader", il faut aussi le faire dans fichier1.

t'as fait ca??

Si ca marche pas ben je vois qu'une solution : la fenetre du 4eme étage (pour le pc, ou pour toi, c'est toi qui décideSmiley)
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :Seb, c'est bien!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Alp
Superviseur :
- Système d'ex.
- Méthodologie.
- C & C++
Modérateur :
- Bavardages
Chef de projet(s) :
- My SDL Lib

Avatar de Alp
Inscrit : 24/06/2004
Messages : 2547
Message
#88293
Posté le 15/02/06 à 21:40
Ca en est ou?
si tu déclares une fonction f dans un fichier fonc.h
il faut faire :
#include "fonc.h"
dans chaque fichier ou tu te sers de f ...
si fonc.h est dans un sous-dossier de là ou est le fichier dans lequel tu inclus, il faut faire :
#include "sous_dossier/fonc.h"

Exemple concret ...
Tu bosses sur un projet à plusieurs et tout, toi tu t'occupes de la partie graphique ... tu as un dossier "fonctions_graph" pour mettre tes .h et .c avec tes fonctions graphiques ....
Dans le fichier principal si tu veux t'en sevir, tu fais :
#include "fonctions_graph/fonc.h"

// ...
f(23,"Hello");


Sinon :
Il ne faut pas compiler les .h, seulement les .c, puis compiler tous les .o des .c à la fin, sans oublier chaque fois que besoin est de lier des librairies.
__________________________
Be C++
Mon Blog (C++, Intelligence Artificielle, Prolog)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

thechief
Membre régulier
Inscrit : 16/07/2004
Messages : 65
Message
#88411
Posté le 16/02/06 à 20:43
Ah d'accord, je pensais que "dossier/func.h" ne fonctionnerai pas ... J'ai besoin d'une précision sur la compilation. D'abord je fais gcc -c source1.c source2.c pour transformer les fichier en fichier objet ? Et après là je ne suis plus trop sur de moi...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Spirit
Superviseur :
- C & C++
Modérateur :
- PHP
- Javascript
- MySQL
Avatar de Spirit
Inscrit : 07/04/2004
Messages : 1948
Message
#88431
Posté le 17/02/06 à 02:09
en gros c'est tout con, dans tes .h tu fous les prototypes de tes fonctions, et dans les .c leurs codes.
__________________________
Spirit - modérateur casu ^-^'

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C - CONSOLE



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.