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

Code::Blocks Discussion :

linkage dans CODE::BLOCKS


Sujet :

Code::Blocks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 34
    Par défaut linkage dans CODE::BLOCKS
    Bonjour à tous,

    Dans le cadre de mon travail, je suis amené à programmer en fortran sous windows (chez moi) (j'utilise le compilateur gfortran et l'IDE CODE::BLOCKS. Au bureau, j'utilise Ubuntu et aussi le compilateur gfortran mais bien sûr en ligne de commande.

    Je possède un code (code minimal qui reproduit mon problème) composé d'un seul module hello.f90 et d'un programme principal (main.f90) qui fait naturellement appel au précédent module. Voici les deux morceaux de code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    INCLUDE "hello.f90"
     
    ! main.f90 : programme principal
     
    PROGRAM salut
    use NBR
    print*, 'hello ------> a =', a
    end PROGRAM salut
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MODULE NBR
     
    ! le module : hello.f90
     
    IMPLICIT NONE
    INTEGER :: a = 2
    END MODULE NBR
    Au bureau, il me suffit de compiler d'abord le module pour créer hello.o et hello.mod puis de compiler le programme principal afin de créer l’exécutable a.out :

    toto@ >> gfortran -c hello.f90
    toto@ >> gfortran main.f90
    toto@ >> ./a.out

    Tout marche parfaitement bien donc sous linux en ligne de commande avec gfortran.

    Chez moi, j'utilise l'interface graphique de CODE::BLOCKS sous windows 7.
    Voici brièvement la configuration

    Settings / Compiler and debugger / Toolchain executables
    C compiler : gfortran.exe
    C++ : g++.exe
    Linker for dynamic libs : gfortran.exe
    Linker for static libs : ar.exe
    Debugger : gdb.exe
    Resource compiler : VIDE
    Make program : make.exe

    Pour compiler d'abord mon module, j'utilise la fonction Build / Compile current file : ce qui marche parfaitement bien et me créé hello.o et hello.mod ...

    De la même façon, je compile le programme principal mais malheureusement aucun exécutable n'est créé. En cliquant ensuite sur build (petite roue jaune) pour construire mon projet, j'obtiens le message suivant m’empêchant d'aller plus loin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Linking console executable: bin\Release\toto.exe
    obj\Release\hello.o:hello.f90:(.data+0x0): multiple definition of `__nbr_MOD_a'
    obj\Release\main.o:main.f90:(.data+0x0): first defined here
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings

    Je rappelle que tout marche très bien en ligne de commande sous Linux mais pas avec code:blocks sous windows 7.

    Comment fait t-on pour exécuter ce programme et quelles sont les différentes étapes de compilation afin que CODE::BLOCKS comprenne que le programme principal appelle le module hello ?

    Par ailleurs, y a t-il un moyen d'utiliser code:blocks sous windows en ligne de commande comme on le ferait sous linux (avec les mêmes syntaxes) ?

    Merci beaucoup

    Antoine

  2. #2
    Membre habitué
    Profil pro
    Informatique Industrielle
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Informatique Industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut linkage dans CODE::BLOCKS
    bonjour,
    sur la dernière question, voir l'aide de C::B 1.12 CodeBlocks en ligne de commande

    Bien cordialement.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/12/2008, 13h32
  2. nouveau workspace dans code blocks
    Par Fochmarc dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 14/05/2008, 10h47
  3. copier les bibliothèques de TC dans Code::blocks
    Par acacia dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 30/01/2008, 17h42
  4. Installer KjAPI dans Code::Blocks [Débutant]
    Par Paulinho dans le forum API graphiques
    Réponses: 1
    Dernier message: 08/06/2007, 09h26
  5. [blender] exporter dans code::block ou devcpp
    Par youp_db dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 05/06/2007, 15h10

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