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 :

Erreur à l'édition des liens


Sujet :

Fortran

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 7
    Points
    7
    Par défaut Erreur à l'édition des liens
    Bonjour,

    J'ai finalement réussi à compiler mon programme et j'obtiens une erreur que je n'arrive pas à interpréter (du moins je ne comprends).

    L'erreur est la suivante :

    Undefined symbols for architecture i386:
    "_dsyev_", referenced from:
    _hotellingstat_ in mbt_noexq.o
    ld: symbol(s) not found for architecture i386
    collect2: ld returned 1 exit status
    Je vous prie de m'aider.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Il est préférable de fournir la ligne de commande utilisée, en plus du message d'erreur, ça aide.

    D'une façon générale le message du type "symbol not found" signifie que le compilateur, lorsqu'il tente de créer l'exécutable, s'aperçoit qu'il y a des appels vers des routines ou fonctions définies nulle part (c.-à-d. ni dans les sources qu'il est en train de compiler, ni dans les éventuels objets et librairies connexes précisées lors de la compilation).

    Dans ton cas le message semble indiquer que la routine (ou fonction) "hotellingstat" incluse dans "mbt_noexq" fait appel à une routine (ou fonction) "dsyev" qui n'est définie nulle part ailleurs.

  3. #3
    Membre averti
    Homme Profil pro
    [SciComp]
    Inscrit en
    Août 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : [SciComp]

    Informations forums :
    Inscription : Août 2013
    Messages : 134
    Points : 323
    Points
    323
    Par défaut
    Bonjour,

    Probablement faites-vous appel à la fonction "dsyev" (qui me semble être une routine de type eigenvalue de lapack -> je pars sur ce postulat, la probabilité de nommer une routine dsyev étant faible) que vous ne compilez et/ou liez pas à votre exécutable.
    Alors
    - soit dans la commande de compilation, il faut charger les librairies lapack (si c'est possible sur votre machine),
    - soit il faut le code de la librairie lapack correspondante (et ses dépendances), et compiler et lier la routine dsyev à votre executable.

    Il faudrait plus de détails sur la manière dont la compilation est faite pour vous aider (et s'assurer que c'est bien un appel lapack, j'ai peu de doutes mais sait-on jamais).

    Cordialement,
    xflr6

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 7
    Points
    7
    Par défaut Erreur de compilation de code Fortran sous mac
    Bonjour,

    Je compile en faisant les étapes suivantes :

    1. gfortran -c mbt_noexq.f90
    2. gfortran -o mbt_noexq.exe mbt_noexq.o

    je précise que mbt_noexq est le nom du fichier contenant mon code fortran.

    Effectivement, ma subroutine HotellingStat fait appel à la subroutine dsyev qui n'est pas présent dans mon programme mais disponible dans les librairies lapack et blas.

    Dans ce cas comment s'y prendre ?

    Merci à vous tous.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 7
    Points
    7
    Par défaut Erreur de compilation de code Fortran sous mac :Probleme résolu
    Bonjour,

    J'ai suivi les directives que vous m'avez données puis suis arrivé à compiler mon code Fortran.

    J'ai installé la libraire lapack dans le répertoire de mon code puis dans la compilation j'ai fait
    : "gfortran -o nomfichier.so nomfichier.o -llapack -lblas ".

    Merci pour tout, à vous deux.

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

Discussions similaires

  1. Erreur d'édition des liens dans un projet c++
    Par modafine dans le forum C++
    Réponses: 3
    Dernier message: 08/04/2009, 15h53
  2. Erreur à l'édition des liens
    Par biloute555 dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 17/05/2008, 11h46
  3. Réponses: 0
    Dernier message: 20/07/2007, 13h40
  4. Erreur à l'édition des liens en mode release
    Par Deydey dans le forum Visual C++
    Réponses: 3
    Dernier message: 16/04/2007, 14h56
  5. [VC++] Erreur d'édition des liens LNK1143
    Par Yellowmat dans le forum MFC
    Réponses: 6
    Dernier message: 01/02/2006, 15h00

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