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

Fortran Discussion :

Erreurs LNK2005 & 2001


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut Erreurs LNK2005 & 2001
    Bonjour à tous,

    Voilà, j'ai récupéré les codes source Fortran d'une application très complexe venant d'une machine UltraSparc tournant sous Solaris 7.
    Lors de la compilation des fichiers 1 à 1 sur ma machine Windows XP, tout se passe bien hormis quelques Warnings qui traînent à droite à gauche.
    Mais lorsque je tente de compiler l'ensemble des fichiers en créant un nouveau projet sous Compaq Visual Fortran, j'ai les erreurs suivante dont je comprend le sens mais je n'ai aucune idée de comment les résoudre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    vvcalthe.obj : error LNK2005: _MAIN__ already defined in vvcalele.obj
    bftute.obj : error LNK2001: unresolved external symbol _BFPERCHA@148
    brith.obj : error LNK2001: unresolved external symbol _BFC720@52
    jdcon5.obj : error LNK2001: unresolved external symbol _MDC816@56
    jdcon51.obj : error LNK2001: unresolved external symbol _MDC816@56
    Debug/VVasygen.exe : fatal error LNK1120: 3 unresolved externals
    N'ayant jamais touché au Fortran de ma vie (même si j'ai saisi son fonctionnement après 2 jours d'analyse de ces codes), je suis un peu perdu

    Je vous remercie par avance de votre aide !

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Mais lorsque je tente de compiler l'ensemble des fichiers en créant un nouveau projet
    Est-ce le compilateur ou l'éditeur de lien qui te donne ces messages?
    Jean-Marc Blanc

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut
    C'est bien le compilateur qui me donne ces erreurs. Voici un screenshot :


  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    C'est bien le compilateur qui me donne ces erreurs.
    Mais ta copie d'écran montre de manière évidente que ce n'est pas le compilateur, mais l'éditeur de liens (linker).
    Jean-Marc Blanc

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut
    Oh... J'ai du mal saisir... Enfin bref, je n'ai toujours pas réussi à avancer dans mon problème...

    J'ai juste constaté la chose suivante : lorsque je sors le fichier vvcalthe.f (qui créé le fichier vvcalthe.obj) du projet, l'erreur LNK2005 disparaît alors que si je me contente de mettre la totalité du code de vvcalthe.f en commentaire (sauf le END), l'erreur LNK2005 reste... Je n'y comprends plus rien...

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    En Fortran, il y a plein de définitions implicites. Dans l'exemple suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    program Exemple
    implicit none
    integer i
    i = 5
    write(*,*) i
    stop
    end
    tu peux enlever les lignes 1,2,3 et 6. Si tu enlèves également les lignes 4 et 5 pour ne conserver que le "end", tu as encore un programme (qui ne fait rien, mais qui est quand même un programme).

    L'erreur LNK2005 indique qu'il y a plus d'un programme (principal) dans ton projet. Le fait de tout mettre en commentaire sauf le "end" ne règle évidemment pas le problème, puisque le "end" devient la fin d'un programme. Il y a généralement 2 causes à ce type d'erreur :
    • On inclut dans un projet deux fois le programme principale (l'original et une version alternative)
    • Une erreur de code source produit un programme principal par accident (par exemple, une boucle est terminée par un end au lieu d'un enddo; la suite devient implicitement un nouveau programme)


    Pour les LNK2001, je ne connais pas les fonctions indiquées. Tu dois donc chercher MDC816, BFPERCHA, ... dans les sources pour comprendre (les _ et les @56 ne sont pas dans les sources, ce sont des "décorations" ajoutées par le compilateur). Elles viennent possiblement d'une librairie que tu aurais oubliée d'ajouter au projet. Il est également possible que les options de compilation soient incorrects et que les fonctions soient introuvables parce que la décoration n'est pas la bonne... La première étape est de trouver d'où viennent ces fonctions.

Discussions similaires

  1. [AC-2003] Erreur d'exécution '2001' suite à un DLookup
    Par phoon dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/11/2009, 14h58
  2. Erreur LNK2005 " already defined"
    Par mulfycrowh dans le forum Visual C++
    Réponses: 6
    Dernier message: 18/10/2009, 00h03
  3. Erreur d'execution '2001' qu'en sortie de création
    Par gberthier dans le forum IHM
    Réponses: 7
    Dernier message: 22/02/2008, 15h04
  4. Erreur LNK2005 avec Visual C++ 6
    Par Chatbour dans le forum Visual C++
    Réponses: 2
    Dernier message: 20/10/2006, 21h35
  5. [VBA]probleme : erreur 2001 operation annulée
    Par julio78 dans le forum Access
    Réponses: 6
    Dernier message: 09/01/2006, 15h21

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