IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Compiler sous linux


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 62
    Points : 56
    Points
    56
    Par défaut Compiler sous linux
    Bonjours à tous,
    J'ai un programme en console win32 developpez sous windows et je cherche a le compiler sous windows. J'ai créé mon fichier makefile comme ceci :
    CC=g++
    LD=g++

    all : executable

    executable: main.o Graph.o Graph_oriente.o Graph_noriente.o Sommet.o
    $(LD) -o executable $^

    main.o: main.cpp Graph_oriente.h Graph_noriente.h Graph.h
    $(CC) -c $<

    Graph.o : Graph.cpp Graph.h
    $(CC) -c $<

    Graph_oriente.o: Graph_oriente.cpp Graph_oriente.h
    $(CC) -c $<

    Graph_noriente.o: Graph_noriente.cpp Graph_noriente.h
    $(CC) -c $<

    Sommet.o: Sommet.cpp Sommet.h
    $(CC) -c $<
    Je cherche maintenant a lancer la compilation mais je suis novice quelqun peux m'aider ? D'avance merci

  2. #2
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 54
    Points : 41
    Points
    41
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    CC=g++ -w -Wall
     
    all : main
     
    main: main.cpp Graph_oriente.h Graph_noriente.h Graph.h
    $(CC) -o main $<
     
    Graph.o : Graph.cpp Graph.h
    $(CC) -c $<
     
    Graph_oriente.o: Graph_oriente.cpp Graph_oriente.h
    $(CC) -c $<
     
    Graph_noriente.o: Graph_noriente.cpp Graph_noriente.h
    $(CC) -c $<
     
    Sommet.o: Sommet.cpp Sommet.h
    $(CC) -c $<
    l'option -c est pour les "librairies", elle ne fait pas de linkage. Hors, ton main n'est pas une librairie et a besoin des linkages des différents .o que tu vas créer... Donc il te faut l'option -o suivi du nom de ton exécutable et les librairies :p

    Tu px rajouter qqes paramètres à ton compilateur aussi pour qu'il te fasses plus de warnings.

    J'espère que ça t'as aidé.

  3. #3
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    l'option -c est pour les "librairies"
    Alors déjà d'une il n'y a pas de librairie, les librairies ce sont des endroits où tu achètes des bouquins, en programmation, ce sont des bibliothèques !

    Ensuite, il va falloir relire le man de gcc, -c c'est pour compiler.

    Pour ce qui est de la constitution du makefile, il faut savoir quelques règles de base :

    un makefile est organisé via les tabulations, ce que tu nous donnes ne fonctionnera pas. Ensuite, la façon dont tu as définit la variable CC est bizarre ... . Il y a aussi moyen de factoriser le code.

    Voici ce que j'utilise comme Makefile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    SRCS = $(wildcard *.cc)
    OBJS = $(SRCS:.cc=.o)
    BIN  = test
     
    WARNINGS = -W -Wall -pedantic -Werror -O2 -Wchar-subscripts -Wcomment -Wparentheses  -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wundef -Wshadow -Wpointer-arith -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-noreturn -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wno-long-long 
     
    CFLAGS = $(WARNINGS) 
    LDFLAGS = 
     
    all: $(BIN)
     
    $(BIN) : $(OBJS)
    	$(CC) -o $@ $(LDFLAGS) $< 
     
    %.o : %.cc
    	$(CC) -o $@ $(CFLAGS) -c $^
     
    clean:
    	rm -rf $(OBJS)
    	rm -rf *~
     
    clean_all: clean
    	rm -rf $(BIN)
    Ici je suppose que mes fichiers sont à l'extension .cc mais ça se change. Si tu veux plus d'information, consulte l'article suivant :

    http://gl.developpez.com/tutoriel/outil/makefile/

Discussions similaires

  1. erreur a la compilation sous linux
    Par superC dans le forum wxWidgets
    Réponses: 40
    Dernier message: 10/03/2007, 12h54
  2. Compilation sous Linux
    Par jbjweb dans le forum Déploiement/Installation
    Réponses: 1
    Dernier message: 17/01/2007, 13h22
  3. [mono] Compilation sous linux, erreur dans windows
    Par AlexandreP dans le forum Mono
    Réponses: 6
    Dernier message: 18/08/2006, 19h56
  4. erreur de compilation sous linux
    Par petdelascar dans le forum C
    Réponses: 11
    Dernier message: 21/12/2005, 20h10
  5. pb de compilation sous linux
    Par prsieux dans le forum Linux
    Réponses: 10
    Dernier message: 20/12/2005, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo