Résultats de 1 à 2 sur 2

Sujet : Librairie et compilation

  1. #1

    Librairie et compilation

    Bonjour,

    Je debute en programmation Fortran et je suis un peu perdu sur la gestion des librairies.

    Je dois utiliser la librairie Lapack (pour faire de l\'algebre lineaire) dans mon programme principal, ainsi que des modules que j\'ai moi-meme ecrit.

    Or quand je veux compiler mon programme principal, je suis oblige de lier tous mes modules et ma librairie lapack a chaque fois (laquelle librairie lapack fait d\'ailleurs appel a d\'autres librairies que je dois aussi lier, dont libg2c, sinon ca marche pas).

    J\'ai du louper un episode quelque part car ca m\'etonne qu\'on ne puisse pas automatiser ca ou donner les emplacements des librairies a chercher une bonne fois pour toutes.

    Merci.

    PS : j\'ai bien essaye de faire un Makefile, mais comme je ne sais pas faire, evidemment ca n\'a pas marche. Je ne sais meme pas s\'il c\'est un simple fichier texte ou s\'il faut faire qqchose en plus.

  2. #2
    Membre MP
    Inscrit
    août 2013
    Localisation
    12100
    Messages
    687
    Tu peut préparer un fichier de commande tout prêt qui contient une fois pour toute la liste de toutes les bibliothèques utilisées....
    Je te donne d\'abord celui qui crée un sous programme mis dans la bibliothèque AFK.LIB

    echo off
    echo !SF.BAT: Compil + in-biblio de %1.FOR
    if exist \"%1.err\" del \"%1.err\"
    if exist \"%1.lst\" del \"%1.lst\"
    if exist \"%1.obj\" del \"%1.obj\"
    if \"%2\"==\"L\" imp @,&,f,*,v
    if \"%2\"==\"l\" imp @,&,f,*,v
    if \"%2\"==\":\" goto lic
    if \"%2\"==\"\" c:\\msdev\\bin\\fl32 %1 /c /nologo %1.for > %1.err
    if \"%2\"==\"L\" c:\\msdev\\bin\\fl32 %1 /c /FsPRN /nologo %1.for > %1.err
    if \"%2\"==\"F\" c:\\msdev\\bin\\fl32 %1 /c /Fs%1.lst /nologo %1.for > %1.err
    if \"%2\"==\"l\" c:\\msdev\\bin\\fl32 %1 /c /FsPRN /nologo %1.for > %1.err
    if \"%2\"==\"f\" c:\\msdev\\bin\\fl32 %1 /c /Fs%1.lst /nologo %1.for > %1.err
    if \"%2\"==\"c\" c:\\msdev\\bin\\fl32 %1 /c /Fc%1.cod /nologo %1.for > %1.err
    if not errorlevel 1 goto bib
    echo Erreur de compilation sur %1.for
    goto err
    :bib
    if exist \"afk.lib\" goto kaf
    c:\\msdev\\bin\\LIB.EXE /nologo %1.obj /OUT:AFK.LIB >> %1.err
    if not errorlevel 1 goto bon
    echo Erreur sur LIB avec %1.obj
    goto err
    :kaf
    c:\\msdev\\bin\\LIB.EXE AFK.LIB /nologo %1.obj >> %1.err
    if not errorlevel 1 goto bon
    echo Erreur sur LIB avec %1.obj
    :err
    type %1.err
    goto fin
    :bon
    echo %1.OBJ mis dans AFK.LIB
    dir %1.*
    :fin

    Ensuite je donne celui du programme principal


    echo !FL.cmd: Compil + link de %1.FOR
    if exist \"%1.lst\" del \"%1.lst\"
    if exist \"%1.map\" del \"%1.map\"
    if exist \"%1.mak\" del \"%1.mak\"
    if exist \"%1.mdp\" del \"%1.mdp\"
    if exist \"%1.err\" del \"%1.err\"
    if exist \"%1.cod\" del \"%1.cod\"
    if exist \"%1.obj\" del \"%1.obj\"
    if exist \"%1.exe\" del \"%1.exe\"
    if \"%2\"==\"L\" imp @,&,f,x,v
    if \"%2\"==\"l\" imp @,&,f,x,v
    if \"%2\"==\"\" c:\\msdev\\bin\\fl32 /MW /c /nologo %1.for > %1.err
    if \"%2\"==\"L\" c:\\msdev\\bin\\fl32 /MW /c /FsPRN /nologo %1.for > %1.err
    if \"%2\"==\"F\" c:\\msdev\\bin\\fl32 /MW /c /Fs%1.lst /nologo %1.for > %1.err
    if \"%2\"==\"l\" c:\\msdev\\bin\\fl32 /MW /c /FsPRN /nologo %1.for > %1.err
    if \"%2\"==\"f\" c:\\msdev\\bin\\fl32 /MW /c /Fs%1.lst /nologo %1.for > %1.err
    if not errorlevel 1 goto lik
    echo erreur de compile sur %1.for
    goto err
    :lik
    c:\\masm32\\bin\\LINK /DEFAULTLIB:afk.lib /MAP:%1.map %1.obj >> %1.err
    if not errorlevel 1 goto bon
    echo erreur de LINK sur %1.obj
    :err
    echo Il y a des erreurs
    type %1.err
    goto fin
    :bon
    echo fin OK %1
    dir %1.*
    :fin

    Il suffit pour créer un sous programme SOUPRO de frapper !SF soupro

    pui pour le programme principal de frapper
    !fl princip

    pour chacun, si on ajoute ,L , on a le listing

    Bonne continuation
    Moby
    moby

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!