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

C++ Discussion :

Problème de compilation


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Par défaut Problème de compilation
    Hello,

    C'est la première fois que je rencontre ce problème (mais aussi la première fois que j'écris un truc aussi moche hybride entre C et C++ ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ensisun:~/IndSens>make
    g++ -o main indEntrop.o fonctions.o sample.o -Wall -O3 -funroll-loops -foptimize-register-move -felide-constructors -frerun-loop-opt -fexpensive-optimizations
    Undefined                       first referenced
     symbol                             in file
    main                                /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/crt1.o
    ld: fatal: Symbol referencing errors. No output written to main
    collect2: ld returned 1 exit status
    *** Error code 1
    make: Fatal error: Command failed for target `main'
    Ca ne doit pas venir du Makefile je pense, j'ai fait un copier-coller d'un ancien Makefile qui fonctionne; le voici quand même au cas où:

    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
     
    CXX=g++
    CXXFLAGS=-Wall
    LDFLAGS=-Wall
    OPTFLAGS=-O3 -funroll-loops -foptimize-register-move -felide-constructors -frerun-loop-opt -fexpensive-optimizations #-frename-registers
    EXEC=main
     
    all: $(EXEC) 
     
    main: indEntrop.o fonctions.o sample.o
    	$(CXX) -o $@ $^ $(LDFLAGS) $(OPTFLAGS)
     
    %.o: %.cpp
    	$(CXX) -o $@ -c $< $(CXXFLAGS) $(OPTFLAGS)
     
    clean:
    	rm -f *.o
    	rm -f $(EXEC)
    J'ai 4 fichiers .cpp: main,indEntrop,sample,fonctions; et 3 fichiers .h: indEntrop,sample et fonctions.

    Merci d'avance ^^
    Benjamin.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Tu as oublie de mettre main.o en pré-condition de ta cible main, donc main.cpp n'est pas compilé et le compilo ne peut pas trouver la fonction main. D'où l'erreur.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Par défaut
    ça marche! merci ^^ (j'ai un peu honte quand même d'avboir oublié ça :-/)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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