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 :

Link code error LNK2001: unresolved external symbol


Sujet :

Fortran

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 19
    Par défaut Link code error LNK2001: unresolved external symbol
    Bonjour tt le monde,
    Je suis nouveau et débutant en fortran et programmation en général.
    Mon pb est le suivant:
    J'ai créé une routine en fortran que j'appelerai par la suite à partir de VBA Excel. Je souhaite donc creer une dll. La compilation de mon programme ne pose pas de probleme, mais quand je veux construire le projet/dll, le message d'erreur suivant s'affiche:
    error LNK2001: unresolved external symbol _FLEXTIN@8
    Je précise que FLEXTIN est le nom d'un tableau que je passe en Argument. Aprés qlq heures de recherches, je vous demande de l'aide pour m'aider à resoudre ce pb.
    Merci

  2. #2
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    le problème quand on fait du multi language vien souvent des "_" qui se rajoute ou pas en fonction des compilos... tu peux donc regarder avec les option d'underscore des compilo...

    p.S. quels compilo utilise-tu et qui appelle qui?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 19
    Par défaut
    le compilateur que j'utilise est visual fortran.
    En fait, les variables sont envoyé de VBA vers Fortran, puis la routine fortran effectue son calcul et retourne finalement une valeur à VBAExcel.
    Le truc, c'est que la variable FlexTin est un tableau à 2 dimensions.
    Une dimension est bien definie (de 0 à 40 lignes) mais les colonnes sont variables (Tableaux dynamique). Le nombre de ligne (40) ainsi que le nombre de colonne(Ncol) sont defini dans VBA et envoyé à fortran en passant Ncol en argument. Le tableau est ensuite redefini dans Fortran.
    Au final, je pense que le probleme peut venir de là? Qu'en pensez vous?
    Savez vous ce que signifie le @8 de l'erreur.
    Ceci dit je vais qd mm vérifier l'histoire de l'underscore.
    Merci bcp pour votre aide.
    Benjijmin

  4. #4
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    le @8 viend de la taille de tes élément: des réél double précision j'imagine...

    ensuite, fortran stocke toujours tout en colonne dans la mémoire... donc le coup des colonnes variables est plutot bon quoique n'ayant peu d'importance à mon avis.

    ensuite la difficulté c'est de compiler le code vba avec ta variable dedans pour que le prog fortran puisse accèdé au code compilé... pas évdent surtout que tu réxploite derrière... il faut que tes compilos (fortran et vba) se comprenne si c'est du F77 ce sera dur de chez dur...

    une solution alternative est de passé par un fichier temporaire:
    ----
    ton prog vba écrit ton tableau dans un fichier (binaire de préférence pour pas perdre de précision)
    il lance le prog fortran et attend la fin d'éxécution
    lit le fichier de résultat du prog fortran (tjrs en binaire pour la précision)
    et il détruit les fichiers temporaire
    ----
    ton prog fortran lui se comtente de
    lire le fichier content Flextin
    faire son calcul
    écrire le resultat dans un fichier

    c'est moins joli comme construction mais je crois que pour avoir un joli code tout compilé tu va galèrer

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 19
    Par défaut REPONSE TO Genter Slayer
    Citation Envoyé par genteur slayer Voir le message
    le @8 viend de la taille de tes élément: des réél double précision j'imagine...

    ensuite, fortran stocke toujours tout en colonne dans la mémoire... donc le coup des colonnes variables est plutot bon quoique n'ayant peu d'importance à mon avis.

    ensuite la difficulté c'est de compiler le code vba avec ta variable dedans pour que le prog fortran puisse accèdé au code compilé... pas évdent surtout que tu réxploite derrière... il faut que tes compilos (fortran et vba) se comprenne si c'est du F77 ce sera dur de chez dur...

    une solution alternative est de passé par un fichier temporaire:
    ----
    ton prog vba écrit ton tableau dans un fichier (binaire de préférence pour pas perdre de précision)
    il lance le prog fortran et attend la fin d'éxécution
    lit le fichier de résultat du prog fortran (tjrs en binaire pour la précision)
    et il détruit les fichiers temporaire
    ----
    ton prog fortran lui se comtente de
    lire le fichier content Flextin
    faire son calcul
    écrire le resultat dans un fichier

    c'est moins joli comme construction mais je crois que pour avoir un joli code tout compilé tu va galèrer
    Merci vraiment pour ton aide. En effet, j'ai regardé de plus près mon programme et je viens de me rendre compte que j'ai fais une inversion de ligne et colonne. J'ai defini un tableau a L ligne et C colonnes avec C>L et je demande de faire un calcul avec la ligne N°C. Du coup il y a une incomprehension et je pense que c'est de là que viens mon erreur.
    En tt cas, merci vraiment pour ton aide.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/06/2009, 19h59
  2. Error LNK2001 "unresolved external symbol _MAIN__"
    Par rihab1509 dans le forum Fortran
    Réponses: 2
    Dernier message: 06/05/2009, 23h00
  3. error LNK2001: unresolved external symbol _errno
    Par stof dans le forum Visual C++
    Réponses: 4
    Dernier message: 10/08/2007, 15h40
  4. Réponses: 2
    Dernier message: 05/06/2007, 09h37
  5. [ error LNK2001: unresolved external symbol]
    Par ARachid dans le forum MFC
    Réponses: 2
    Dernier message: 18/05/2007, 13h33

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