Accueil > Forum > > > > Devcpp - compilation en cascade
Devcpp - compilation en cascade
lundi 7 novembre 2005 à 21:07:08 |
Devcpp - compilation en cascade

nobpn
|
Bonjour à tous,
J'aimerais savoir comment faire (si possible) avec devcpp pour que si il me trouve pas la lib il la compile.
Je m'explique :
dans le source, j'inclue des .hpp avec tout le code qui va bien !!!
compilation : no probleme. C'est au "linkage" qu'il me mets des erreurs
dans tous les sens : "Undefined reference" à des fonctions qu'ils
connait qui sont bien dans les .hpp.
Je croi que comme les hpp sont pas compilé, il connait pas les fonctions.
Bref comment faire si j'ai été clair!!!
D'avance merci à bientot!
-------------------------------------------------- Me... That's all, that's enough! --------------------------------------------------
|
|
mardi 8 novembre 2005 à 00:43:33 |
Re : Devcpp - compilation en cascade

meech
|
Bonsoir,
Oui, tu as été très clair. Mais les *.hpp sont ce que l'on nomme des fichiers d'en-têtes (headers, includes, ou comme on veut...). La vocation de ceux-ci n'est que de fournir une déclaration de fonction(s) qui peut (peuvent) ou non être définies dans le programme même. Cette déclaration permet au compilateur de parvenir à transformer les fichiers *.cpp en fichiers "objet".
Lors que ces fonctions ne sont pas définies dans le programme que tu souhaites compilées, ces routines sont implémentées dans :
- soit un objet partagé (un *.DLL sous Microsoft Windows ; un *.SO sous GNU/Unix) ;
- soit une librairie dite statique (à quelque chose près la même chose, mis à part le fait que l'ensemble du contenu de la librairie sera inclus dans le programme compilé).
Mais sans la définition de ces routines, ne disposant donc que de leur déclaration, le "linkage" des fichiers *.o s'écroule.
Donc, sans *.dll, sans *.lib ou sans *.a, je ne crois pas qu'il soit possible de linker le programme. Sauf part l'appel dynamique d'objet partagé, comme l'un de mes petits bouts de code sans prétention le démontre [http://www.cppfrance.com/code.aspx?id=28739].
Peux-tu spécifier la librairie qu'il te manque ?
En espérant t'avoir aidé un tantinet,
Bonne nuit ;-)
|
|
mardi 8 novembre 2005 à 10:39:31 |
Re : Devcpp - compilation en cascade

nobpn
|
-------------------------------------------------- Me... That's all, that's enough! --------------------------------------------------
|
|
mardi 8 novembre 2005 à 10:50:17 |
Re : Devcpp - compilation en cascade

nobpn
|
oups trompé de bouton...
Merci pour ta réponse. J'ai bien compris le programme avec call et libhello.
En fait tu a prescompilé "libhello" que tu donne a ton programme "call" si j'ai bien tout compris...
Mon probleme a moi est que si je mmodifie une de mes classes jaimerais
que devcpp me recompile tout, la classe (car elle a changée) et mon
main.
En fait il sagit d'un projet d' info de l'année dernière (donc sources
inconnues mais a^res examen : multiples dépendances entre les classes)
que je dois reprendre et améliorer : j'ai reussi a compiler sous linux
avec un joli makefile qui recompile toutes les dépendances entre les
"fichiers".
Exemple :
dans le main
#include "include/SquareLight.hpp" ...
SquareLight * lightsource = new SquareLight ( xxx, yyy, zzz);
=> linker error Undefined reference to SquareLight::SquareLight(type1,type2,type3)
J'aimerais que comme il "voit" que le main dépend de ma classe
Squarelight.cpp il me refasse le Squarelight.o ou Squarelight.a qui lui
est nécessaire.
Dsl pour le code je connais pas la balise pour cppfrance.
Merci
Schuuuuuuuuuuuus
-------------------------------------------------- Me... That's all, that's enough! --------------------------------------------------
|
|
mardi 8 novembre 2005 à 12:16:47 |
Re : Devcpp - compilation en cascade

meech
|
Salut,
En fait, si j'ai bien compris, tu bosses :
1. Sur une (ou plusieurs) librairie(s) contenue(s) dans des projets différents que le programme principal ;
2. Un projet Dev-C++ relatif au programme principal.
Alors là, c'est différent, je crois qu'il va falloir que tu joues avec
le Makefile.win construit automatiquement par Dev-C++ ou alors, essaie
d'en créer un comme tu l'as fait sous linux, en le spécifiant dans les
"options du projet"...
Le but étant alors de
compiler les librairies une à une puis, en dernier ressort, de compiler
le programme final en étant attentif aux chemins des librairies et aux
dénominations des librairies à inclure...
A plus.
|
|
mercredi 9 novembre 2005 à 18:17:41 |
Re : Devcpp - compilation en cascade

nobpn
|
Bonjour.
J'ai reussi a compiler sous windows avec un makefile linux.
Je fais juste un make dans la console "cmd" et ca me genere toutes les librairies .a.
Il me reste 2 problemes :
- Quand je donne ce Makefile a Devcpp il me marque une erreur à la compil :
.../Makefile [Build Error] No rule to make target `all'. Stop.
- Quand je compile sous linux : programme nikel. Sous windows : il démarre puis plante.
Il s'agit bien sur d'un programme totalement console/C++.
Ne connaissant rien aux makefile j'ai recopié le makefile linux pour le faire marcher sous windows. je la pose en code :
[code]
INCDIR=include
# FLAGS=-g -W -Wall -Wno-deprecated
FLAGS=-O3 -W -Wall -Wno-deprecated
export CC=g++
export AR=ar -ru
export LIB=RTR
EXE=Photon3.exe
# pour repertoire courant
LCFLAGS=${FLAGS} -I${INCDIR}
LDFLAGS=-L./ -l${LIB}
# pour les submakes
export INCPATH=../${INCDIR}
export CFLAGS=${FLAGS} -I../${INCDIR}
export OUTPUT=../lib${LIB}.a
SUFF=.exe
TARGETS=libRTRMisc.a libRTRColor.a libRTRLight.a libRTRGeometry.a
libRTRRayTracing.a libRTRScene.a libRTRStruct.a libRTRVecmat.a
libRTRBRDF.a libRTRCSG.a libRTRPhoton.a libRTRObjects.a
Main.o
##libRTRNURBS.a
#####################################################################
RTR: libRTR.a
${CC} ${CFLAGS} Main.o -o ${EXE} ${LDFLAGS}
libRTR.a: ${TARGETS}
${AR} libRTR.a Main.o
Main.o: Main.cpp
${CC} ${LCFLAGS} -c Main.cpp -o Main.o
libRTRLight.a:
make -e -C lights libRTRLight.a
libRTRVecmat.a:
make -e -C Vecmat libRTRVecmat.a
libRTRColor.a:
make -e -C color libRTRColor.a
libRTRGeometry.a:
make -e -C geometry libRTRGeometry.a
libRTRMisc.a:
make -e -C misc libRTRMisc.a
libRTRObjects.a:
make -e -C objects libRTRObjects.a
libRTRRayTracing.a:
make -e -C raytracing libRTRRayTracing.a
libRTRScene.a:
make -e -C scene libRTRScene.a
libRTRStruct.a:
make -e -C structures libRTRStruct.a
libRTRBRDF.a:
make -C brdf libRTRBRDF.a
libRTRCSG.a:
make -e -C csg libRTRCSG.a
libRTRPhoton.a:
make -e -C photon libRTRPhoton.a
################
clean: distclean
distclean:
rm -f core *~ Main.o ${EXE}${SUFF} ${EXE} ${INCPATH}/*~
make -e -C lights clean
make -e -C color clean
make -e -C geometry clean
make -e -C misc clean
make -e -C objects clean
make -e -C raytracing clean
make -e -C scene clean
make -e -C structures clean
make -e -C brdf clean
make -e -C Vecmat clean
make -e -C csg clean
make -e -C photon clean
mrproper: distclean
rm -f *.stackdump *.ppm *.a *.ppm
[/code] -------------------------------------------------- Me... That's all, that's enough! --------------------------------------------------
|
|
mercredi 9 novembre 2005 à 18:25:44 |
Re : Devcpp - compilation en cascade

nobpn
|
Grrrrrrrrrrr j'arrive pas a m'u faire a c forum.
J'ai oublié : merci d'vance a bientot.
-------------------------------------------------- Me... That's all, that's enough! --------------------------------------------------
|
|
jeudi 10 novembre 2005 à 10:06:08 |
Re : Devcpp - compilation en cascade

meech
|
Salut,
A priori, il manque une cible "all" dans ton Makefile pour tout construire, du genre :
all: RTR
[éventuellement d'autres trucs à faire].
Ici, la section all n'est qu'une sorte de "pointeur" vers la cible où est construit ton exécutable, c'est-à-dire RTR.
Ciao.
PS. Hein, c'est pénible aussi les Makefile ? 
|
|
Cette discussion est classée dans : compilation, devcpp, fonctions, cascade, hpp
Répondre à ce message
Sujets en rapport avec ce message
DevCpp et GTK compilation Static [ par garthos ]
voila on m'a di qu c'était possible de mettre -static dans les option de compilation de devcpp afin de compiler gtk en static et de ne plus avoir beso
Compilation commandée [ par Galmiza ]
Salut,Je fais actuellement un programme qui doit éxécuter rapidement des fonctions mathématiques non connues à l'avance. Un peu comme Mathematica ou M
Lecture de fonctions [ par pingooo ]
Bonjour tout le monde !Voici mon petite, ou plutot mon gros problème !Je dois réaliser un programme en C, dans lequel l'utilisateur spécifie les fonct
bibliothèques [ par caro_perf ]
bonjour , je cherche les fonctions mathematiques offertes par la bibliotheque C++ comme le calcul de la partie entiere superieure ou inferieure d'un q
WINSOCK : Envoi / Reception de structures [ par smoove5198 ]
Bonjour, J'ai commencé a ecrire une classe permettant, en fonction de la facon dont on l'instancie, de gerer une connection cliente ou serveur : pour
fonctions [ par pingooo ]
Bonjour tout le monde !VOici mon problème: je travaille en C, et je veux faire un logiciel de résolution d'équa diff avec Runge Kutta...jusque là, ça
grow et setdata [ par rems38 ]
bonjour, j'aimerais savoir si il existe des fonctions similaires a grow et setdata (fonction borland) sous visual c++ 6mercips: pouvez vous me dire ce
strcmp() sous Windows ? [ par tintin72 ]
Bonjour,J'aimerai connaître l'équivalent de la fonction C strcmp() sous Windows.C'est à dire une fonction qui prend en charge le type TCHAR et s'adapt
devcpp [ par sylv38 ]
Salut,je travail pas mal en c sous devcpp et je voudrai commencer à gerer des fenetres sous windows en c++.Pourriez vous me dire quel type de lib je d
Fonctions externes [ par pingooo ]
Bonjour, explication de mon probleme:Je voudrais ecrire des fonctions dans un fichier texte et les réutiliser dans un programme.(sachant que travail e
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|