begin process at 2012 05 28 18:28:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Devcpp - compilation en cascade


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Membre Club
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

Membre Club
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

Membre Club
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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,306 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales