RDforum.free.fr/Cast3M   Index du Forum
Site Web Cast3M
RDforum.free.fr/Cast3M
Forum d'entraide des utilisateurs de Cast3M
Répondre au sujet
Utilisation du code source [Résolu]
nnh


Inscrit le: 17 Juin 2008
Messages: 6
Répondre en citant
Bonjour,

Tout d'abord, est-ce possible d'avoir une rubrique pour l'utilisation du code source ? ( d'ailleurs, y-a-il des développeurs qui utilisent les sources de cast3m ? )
En effet, j'ai appris à me servir de cast3m il y a quelques semaines (non sans difficulté) et la prochaine étape de mon travail, en résumé, est de faire de la rétro-ingénierie.

Je vous explique donc mon problème actuel : j'ai un compilateur fortran mais les sources de cast3m sont en esope (.eso) et d'après la doc, la commande 'compilcast' permet de compiler ces fichiers sources ; en effet, 'compilcast monfic.eso' donne monfic.f et monfic.lst avec le message d'erreur "g77 n'est pas reconnu en tant que commande externe ou interne...". Par conséquent, lorsque je tape 'compilcast *.eso' afin d'avoir toutes les sources en fortran, l'exécution s'arrête avec ce même message d'erreur après avoir transformé seulement le 1er fichier de la liste des 5 mille fichiers sources...

Savez-vous comment 'faire comprendre' à cast3m qu'il peut utiliser mon compilateur fortran (autrement dit, comment faire le lien entre cast3m et mon compilateur) ?
Ou bien, savez-vous comment on utilise MinGW qui est livré avec la version développeur de cast3m 2007 à ce but ? Je n'ai trouvé aucune doc et après installation, il n'y a aucun exécutable.

Voilà, j'espère obtenir votre aide et vous remercie d'avance pour vos réponses.
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonjour,

Si ça peut t'aider :

Citation:
Aide à la compilation :

Pour des raisons de facilité, il est conseillé d’installer le compilateur fortran dans le répertoire bin accompagné des fichiers sources modifiés et des sous-programmes propres au nouveau modèle implanté.

La première étape consiste à compiler l’ensemble des fichiers sources modifiés (d’extension .eso) via le fichier de commande compilcast. Sauf erreur de compilation, un fichier de sortie (d’extension .o) doit apparaître pour chacun d’entre eux.

On peut éventuellement procéder de la même manière pour les sous-programmes du nouveau modèle en ayant au préalable changé leurs extensions .f en .eso.

Cette méthode présente toutefois quelques incompatibilités. L’une des solutions consiste à créer un fichier de commande compilperso (via un simple traitement de texte) pour que la compilation puisse s’effectuer directement de .f en .o.

Exemple de fichier « compilperso.bat » sous Windows :

Citation:
@echo off
set NOMF=%~n1
echo %NOMF%.f
g77 -c -O5 %NOMF%.f



Exemple de fichier « compilperso » sous Linux :

Citation:
DIR=$CASTEM

if [[ $DIR = "" ]] ; then
echo Vous devez definir la variable d\'environnement CASTEM
exit
elif [ ! -d $DIR ] ; then
echo La variable d\'environnement CASTEM n\'est pas positionnee correctement
echo CASTEM\=$DIR
echo Elle doit contenir le chemin absolu au repertoire d\'installation
exit
fi

dos2unix ${1%.f}.f

g77 -O -c ${1%.f}.f 2> toto.$$
cat toto.$$

let lerc=`egrep -c "aborting compilation" toto.$$`
if [ $lerc -gt 0 ] ; then
echo compilation incorrecte pour la norme de Cast3m
\rm ${1%.eso}.o
fi
\rm toto.$$


Une fois tout les fichiers de sortie .o créés, il ne reste plus qu’à les compiler en lançant le fichier de commande essaicast. Un nouvel exécutable nommé cast est alors créé.

Remarque : C’est cet exécutable qui sera lancé par défaut lors de l’exécution d’un programme Gibiane. Cette option n’étant pas toujours respectée, il est possible de forcer son lancement en le renommant du nom de l’exécutable d’origine (après suppression de ce dernier du répertoire bin).


En ce qui te concerne, je pense que le fait d'installer ton compilateur dans le dossier bin peut résoudre ton problème car il te sort bien le fichier .eso en .f mais ne parvient pas à passer de .f en .o ce qui est le role de ton compilateur et le message d'erreur donné va dans ce sens.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
nnh


Inscrit le: 17 Juin 2008
Messages: 6
Répondre en citant
Bonjour,

Merci pour ta réponse, je vais essayer.
Voir le profil de l'utilisateurEnvoyer un message privé
nnh


Inscrit le: 17 Juin 2008
Messages: 6
Répondre en citant
Bonjour,

Après avoir changé la ligne concernant la compilation dans le fichier 'compilcast.bat', la commande 'compilcast' fonctionne très bien, ie elle me donne un .f, un .lst, et un .o à partir d'un .eso
Et donc, toujours dans l'objectif d'avoir tous les fichiers sources en .f, je tape 'compilcast *.eso' mais j'obtiens, sans aucune erreur, seulement les 3 fichiers correspondant au 1er .eso ; et les 5536 autres...???

Auriez-vous une idée pourquoi le joker '*' ne marche pas ici (peut-être juste un problème de syntaxe) ?
Cette fois je n'ai pas la moindre idée du problème et ça me déprime de penser à faire 5 mille fois la même chose.

Merci beaucoup pour votre aide.


NB : j'ai bien entendu essayé de tout sélectionner et d'envoyer à compilcast.bat (et autres tentatives dans ce sens) mais en vain.
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonjour,

Tu n’a pas à compiler les 5537 fichiers source de Castem!

Tu ne doit compiler que tes propres fichiers ainsi que les fichiers sources modifiés.

Une fois que tu les as correctement compilés et que tu as pour chacun d’eux le .o correspondant dans le répertoire bin, lances simplement essaicast.bat. Si tout se passe bien tu devrais avoir un nouvel exécutable Cast.exe qui se lancera par défaut à la place de la version originale.

Dans un premier temps, compiles simplement l’un des fichiers source eso au hasard sans même le modifier avec complicast.bat, et lance essaicast.bat pour obtenir le nouvel exécutable castem pour voir si déjà la compilation finale fonctionne bien.


Dernière édition par lguenhael le 30 Juin , 2008 19:28; édité 1 fois
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
nnh


Inscrit le: 17 Juin 2008
Messages: 6
Répondre en citant
Bonjour,

Merci pour ta réponse.

En fait, je voudrais juste récupérer les programmes sources nécessaires pour effectuer mon calcul (puis faire un exécutable qui ne fait que ce calcul), je n'ai donc pas de fichiers propres (si ce n'est mon .dgibi) encore moins de fichiers modifiés.

Si je voulais avoir toutes les sources en fortran, c'est pour exécuter le main.f et petit à petit (avec un debugger) assembler les sources nécessaires pour le calcul, le main.f seul ne peut être exécuter à cause des appels...

On m'a lancé sur une piste : faire un programme (une boucle) en shell pour faire tourner le compilcast plusieurs fois, mais je ne m'y connais rien et me renseigne en ce moment pour le faire. D'ailleurs si tu as des connaissances en shell (ou simplement une bonne doc), n'hésite pas à me faire partager.

En tout cas, merci encore pour ta réponse.
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonjour,

Par simple curiosité : quel est l'intérêt de ne compiler que les sources nécessaires à ton programme?

Sinon je te conseil effectivement de passer simplement par un debugger.

Pour info (mais tu l'as sans doute vu) il y a le fichier eso2for.bat pour passer tes fichiers .eso en .f
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
Utilisation du code source [Résolu]
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous ne pouvez pas télécharger des fichiers
Toutes les heures sont au format GMT + 2 Heures  
Page 1 sur 1  

  
  
 Répondre au sujet