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 :

Eclipse, Photran, make et gcc4-fortran


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 17
    Par défaut Eclipse, Photran, make et gcc4-fortran : besoin d'aide
    Bonjour à tous

    Je rencontre un problème d'utilisation du plugin photran sous Eclipse CDT, le tout sous windows. J'aurais donc besoin d'un p'tit coup de main, en vous remerciant d'avance.

    Mon problème est le suivant : je ne parviens ni à compiler, ni à débugger en utilisant les commandes prévues à cet effet au sein d'Eclipse.

    Losque je souhaite débugger j'obtiens la réponse : "launch failed. Binary not found"
    Donc je me dis que c'est normal vu que n'ai pas compilé.
    Lorsque je compile il me sort, dans la liste des "problems"
    Errors (1 item)
    make:***[essai_fortran.exe] Error 1 ; Resource = essai_fortran ; line= line 0 ; type = C/C++ problem
    Je ne trouve pas plus d'information sur cette erreur dont la localisation, ligne 0 me semble un peu prématurée.

    Il n'y a pas d'executable à l'issue de cette opération.

    Voici le détail des opérations que j'ai réalisées :

    - En ce qui concerne l'installation j'ai suivi scrupuleusement toutes les consignes données sur cette page : http://wiki.eclipse.org/PTP/photran/...ation/photran4
    - J'ai bien mis mon Workspace dans un répertoire dont le chemin ne contient pas d'espace, son nom ne contient pas d'espace, j'ai vérifié que MikteX, egalement installé, ne venait pas perturber "Perl" avec une ancienne version.

    - Après cette installation j'ai ouvert Eclipse.
    Workspace = C:\workcpp
    File --> New Fortran project auquel je donne le nom "essai_fortran"
    File --> new F+ source file

    - Je me retrouve avec un fichier texte vide dans lequel je colle un programme qui fonctionne avec compaq fortran. (il y a des extension spéciales compaq comme <n> par exemple qui ne sont pas compatibles avec gfortran, mais bon, le débugger devrait me le dire).

    - C'est là, après avoir enregistré le programme collé dans le fichier F+, que surviens le problème : je ne peux donc ni compiler, ni débugger.

    - J'ai donc ouvert l'invite de commande, et j'ai tenté, avec mon fichier texte contenant le listing : "make listing.f90" (je lui ai mis l'extension f90, par habitude, mais ça ne devrait pas gêner)
    Réponse : "nothing to do with listing.f90"

    - J'ai également tenté "gfortran listing.f90"
    Et là il réagit normalement en faisant un débuggage en me disant que ligne 7 il y a le caractère "<", et qu'il ne sait pas quoi faire avec, etc.



    Donc quelques questions :
    - quel est le programme qui sert à débugger? make? gfortran? un autre?
    - quel est le programme qui sert à construire?
    - pourquoi est-ce que mon environnement Eclipse reste au point mort, comment faut-il procéder pour que ça fonctionne correctement?
    - faut il que j'utilise un autre système pour faire du fortran gratuitement?

    Si je résous mon problème, je ferai un tutoriel complet de l'installation de fortran dans l'environnement Eclipse, pour les gens comme moi qui ne comprennent pas tout, à moins que vous ne m'invitiez à consulter celui qui existe déjà, et que je n'ai pas trouvé.

    En vous remerciant de votre patience,
    G.

  2. #2
    Membre éprouvé
    Inscrit en
    Décembre 2002
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 120
    Par défaut
    salut,

    le programme que tu veux compiler, il compile déjà simplement avec un compilateur classique ?

  3. #3
    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
    quelle version de gfortran tu utilise??? la version mingw ou cygwin???

    perso, j'utilise la version cygwin du coup dans cygwin il faut utiliser le debuggeur gdb pour l'éxécution pas à pas...
    est-ce que tu confond pas debuger et compilateur parce que l'érreur "ligne 7 il y a le caractère "<" " c'est une erreur de compilation et non de débuggage...
    en gros il faut compiler avec gfortran et l'option "-g" pour qu'il fournisse les info de débuggage au cours de l'éxécution (info utilisée par gdb!!)

    de plus si tu utilise la version galileo d'éclipse, il y a photran5 où certain bugs sont corrigés...

    de plus, j'ai eu beaucoup de mal à faire marcher le "internal builder" ainsi que le "generate makefile automaticaly" donc j'ai opté pour un makefile manuel... il est alors important que les chemin d'accès au compilateur, au débuger et au make soit défini dans le PATH de windows (chercher la fenêtre "variable d'environnement" il y a la définition du PATH, même sous windows7 )

    pour ce qui est des procedures de build auto-généré (soit par builder inderne soit make auto-généré) il faut allé fouiller dans le phorum de photran...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 17
    Par défaut Arf!
    Bonjour,

    tout d'abord merci à vous deux de m'avoir répondu.

    Non, le programme que je veux compiler ne compile pas avec un compilateur classique pour deux raisons :
    - il est écrit en Compaq Visual Fortran (CVF). Il fonctionne et compile avec ce compilateur, mais j'imagine qu'il n'est pas classique.
    - je ne peux pas définir, en ce qui me concerne, ce qu'est un compilateur classique. Pour moi rien n'est classique, je savais écrire des programmes en CVF sous l'environnement "developper studio", gracieusement offert par mon école d'ingé, mais maintenant que je dois me débrouiller tout seul, et si possible fonctionner dans un environnement libre, je suis complètement perdu, entre le g fortran, et les différentes versions de fortran.

    A priori j'utilise Cygwin.

    J'ai donc peut-être mis la charrue avant les boeufs, en voulant utiliser l'environnement Eclipse, et Photran, il faudrait déjà que je sache compiler et débugger via une simple commande dos.

    D'ailleurs sous dos, j'ai voulu tester un programme simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    PROGRAM bonjour
    write(*,*)"bonjour"
    END PROGRAM bonjour]
    C'est un .txt et je l'ai enregistré en tant que bonjour.for

    Voici la commande DOS correspondante :

    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
    25
    26
    27
    28
    29
    30
    31
     
    C:\workcpp\essai-fortran2>gfortran -g bonjour.for
    bonjour.for:1.1:
     
    PROGRAM bonjour
     1
    Error: Non-numeric character in statement label at (1)
    bonjour.for:1.1:
     
    PROGRAM bonjour
     1
    Error: Unclassifiable statement at (1)
    bonjour.for:2.1:
     
     
    Error: Non-numeric character in statement label at (1)
    bonjour.for:2.1:
     
    write(*,*)"bonjour"
     1
    Error: Unclassifiable statement at (1)
    bonjour.for:3.1:
     
    END PROGRAM bonjour
     1
    Error: Non-numeric character in statement label at (1)
    bonjour.for:3.1:
     
    END PROGRAM bonjour
     1
    Error: Unclassifiable statement at (1)
    Bon donc là je comprends encore moins.

    Je file donc vers les tutoriaux du site, pour reprendre tout depuis le début, si vous en avez un à me conseiller en particulier, qui me dirait dans l'ordre :
    - fais-ci
    - fais-ça
    - installe ceci
    - installe cela
    Je suis preneur.

    Du coup, à la limite, je sors du cadre de la discussion que j'ai lancé, me pardonneras-tu modérateur, le temps qu' Obiwan me forme?

    En vous remerciant,

  5. #5
    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
    l'erreur dans ton programme vient de son extension (*.for):

    cette extension est réservée pour les vieux Fortran ( <77 ) du coup il faut commencer à la septième colonne.

    essaye de le renommer en "bonjour.f90" et... oooooohhhhhh magie!!! cette fois-ci c'est le "free-form" qui est utilisé et donc ton code source est bien interprété par le compilo!!!!

    alors CVF est bien mais ne permet pas d'apprendre: il vaut mieux commencer comme tu dit par la compilation à partir d'un terminal (dos, shell ...etc...) cela permet de mieux comprendre le fonctionnement de la "conversion code-source à code-exécutable" appelé par abus de langage "compilation" cela se passe en 3 temps (souvent le premier n'est pas nécessaire)

    -Pré-compilation
    -Compilation (la vraie cette fois)
    -édition de liens

    Précompilation: permet les copier-colle de code dans les fichier (exemple les #include du C/C++) en fortran cette étape est généralement pas nécessaire...
    Compilation: transforme le code-source en code-machine (des 0100111001...) en gros, pour simplifier, chaque fonction est traduite... (exmple avec gcc ou gfortran la création des fichier .o, avec les visual machin, la création des fichier .obj) qui ne sont que des objets...
    Enfin, l'édition de de lien (link en anglais dans le texte) c'est l'étape de mise en relation des fonctions rendant le code machine capable d'être exécuter (création du .exe sous windows)

    avec ton exemple, renommé "bonjour.f90", l'étape de précompilation n'est pas nécéssaire, on commence par la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gfortran -g -c bonjour.f90
    détail: "-g" -> on veut stocker les infos de débug
    "-c" -> ne fait QUE l'étape de compilation
    résultat: on voit apparaitre dans notre répertoire un fichier "bonjour.o"
    ensuite l'édition de lien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gfortran -g -o bonjour.exe bonjour.o
    détail: "-o bonjour.exe" -> je veux que mon fichier éxécutable s'appelle "bonjour.exe (si ce champ n'est aps renseigné, le nom par défaut est "a.exe")
    "bonjour.o" -> c'est la liste des fichiers que je veux relier

    pour faire tout d'un coup, il suffit de dire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gfortran -o bonjour.exe bonjour.f90
    cependant, prenons un exemple un tout petit peu plus compliqué:
    j'ai deux fichier: "main.f90" et "second.f90":
    main.f90:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    program bonjour
    call ecrit_bonjour
    end program bonjour
    second.f90:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    subroutine ecrit_bonjour
    write(*,*)"bonjour"
    end subroutine ecrit_bonjour
    ce programme fait exactement la même chose que bonjour.f90 mais pour le rendre éxécutable, il faut compiler séparément les deux fichier, voilà comment je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gfortran -g -c main.f90
    gfortran -g -c second.f90
    gfortran -g -o bonjour2.exe second.o main.o
    détail: première ligne -> il compile main.f90, il ne connais pas "ecrit_bonjour" mais il s'en fout, il suppose que c'est définit ailleurs
    seconde ligne -> il compile la routine ecrit_bonjour pas de soucis
    dernière ligne: il s'aperçoit que main appelle une fonction externe mais on lui indique où la trouver (dans second.o) donc il les mets en relation et crée l'exécutable

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 17
    Par défaut ok
    Re,

    ok tout ce que tu m'as expliqué fonctionne, le fait d'utiliser la console dos ne me pose pas de problème. Par contre je me dis que c'est peut être pour l'exécution pas à pas que des environnement de développement comme Eclipse sont intéressants..

    En tous cas merci beaucoup!

Discussions similaires

  1. [Eclipse CDT] Build directory spécifique au make
    Par Harbaingan dans le forum Eclipse C & C++
    Réponses: 3
    Dernier message: 22/03/2012, 10h26
  2. Réponses: 9
    Dernier message: 01/12/2009, 14h50
  3. Eclipse + Qt : Make introuvable
    Par drdeteck dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 28/03/2008, 19h26
  4. Réponses: 1
    Dernier message: 15/06/2007, 09h49

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