|
| Utilisation du code source [Résolu] | |
nnh
Inscrit le: 17 Juin 2008 |
Messages: 6 |
|
|
|
Posté le: 18 Juin , 2008 12:04 |
|
|
|
|
|
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.
|
|
|
| | |
lguenhael
Administrateur
Inscrit le: 25 Nov 2006 |
Messages: 146 |
Localisation: Laboratoire Roberval - UTC |
|
|
Posté le: 18 Juin , 2008 20:03 |
|
|
|
|
|
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.
|
|
|
| | |
nnh
Inscrit le: 17 Juin 2008 |
Messages: 6 |
|
|
|
Posté le: 21 Juin , 2008 16:30 |
|
|
|
|
|
Bonjour,
Merci pour ta réponse, je vais essayer.
|
|
nnh
Inscrit le: 17 Juin 2008 |
Messages: 6 |
|
|
|
Posté le: 24 Juin , 2008 23:33 |
|
|
|
|
|
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.
|
|
|
| | |
lguenhael
Administrateur
Inscrit le: 25 Nov 2006 |
Messages: 146 |
Localisation: Laboratoire Roberval - UTC |
|
|
Posté le: 28 Juin , 2008 11:49 |
|
|
|
|
|
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
|
|
| | |
nnh
Inscrit le: 17 Juin 2008 |
Messages: 6 |
|
|
|
Posté le: 28 Juin , 2008 17:43 |
|
|
|
|
|
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.
|
|
|
| | |
lguenhael
Administrateur
Inscrit le: 25 Nov 2006 |
Messages: 146 |
Localisation: Laboratoire Roberval - UTC |
|
|
Posté le: 30 Juin , 2008 19:39 |
|
|
|
|
|
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
|
|
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
|
|
|
| |