[C++]Comment utiliser des routines Fortran ...

Comment utiliser des routines Fortran ... [C++] - C++ - Programmation

Marsh Posté le 10-10-2003 à 16:07:37    

:??:

Reply

Marsh Posté le 10-10-2003 à 16:07:37   

Reply

Marsh Posté le 10-10-2003 à 16:09:15    

j'ai deja fait mais me souviens plus comment [:dion]

Reply

Marsh Posté le 10-10-2003 à 16:14:00    

j'arrive pas a linker ....poortant je mets ca dans mon .cpp :
 
extern "C" {
 
void chainage(unsigned int *p, short *z, char **nom);
}
 
et en compilant en statik sous VC++ avec la librairie fortran generee separement ...

Reply

Marsh Posté le 10-10-2003 à 16:23:41    

:(

Reply

Marsh Posté le 10-10-2003 à 16:27:14    

cprends rien explique mieux :O
ca veut dire quoi, "compilant statik" :O
et donne l'erreur de link :O

Reply

Marsh Posté le 10-10-2003 à 16:27:17    

Du c appelé par du fortran j'ai déja vu, mais pas l'inverse...


---------------
Le Tyran
Reply

Marsh Posté le 10-10-2003 à 16:28:44    

LetoII a écrit :

Du c appelé par du fortran j'ai déja vu, mais pas l'inverse...


 
30 ans de metier jamais vu ca !

Reply

Marsh Posté le 10-10-2003 à 16:30:56    

chrisbk a écrit :


 
30 ans de metier jamais vu ca !


 
Ct dans une appli de calcul... je crois que ct un module écrit en C pour du TCL et qui appelait du fortran  :pt1cable:
 
EDit: c pas l'inverse de ce que j'ai dit avant? oulà il est temps que la journée se termine  [:ddr555]


Message édité par LetoII le 10-10-2003 à 16:32:12

---------------
Le Tyran
Reply

Marsh Posté le 10-10-2003 à 16:39:53    

chrisbk a écrit :

cprends rien explique mieux :O
ca veut dire quoi, "compilant statik" :O
et donne l'erreur de link :O
 


 
ppLogic.lib(LAM3Mesh.obj) : error LNK2001: unresolved external symbol _chainage_
Debug/AppLogicTest.exe : fatal error LNK1120: 1 unresolved externals
 
bon j'ai un paquet de sous routines fortran , dont "chainage", que j'ai compilé separement sous forme de librairie statik (.lib)
dans mon projet C++, je rajoute cette Lib dans mes settings
 
dans le .cpp je declare ma fonction Fortran comme extern "C"  ...et je pensais que ca amrchait ! mais non !
 
je vois pas comment faire ... :sweat:

Reply

Marsh Posté le 10-10-2003 à 16:44:23    

ben le pb tu vois, c que la convention C rajout un _ devant le nom de fonction
donc essaye d'en rajouter un devant tes fonctions fortrans

Reply

Marsh Posté le 10-10-2003 à 16:44:23   

Reply

Marsh Posté le 10-10-2003 à 16:48:22    

chrisbk a écrit :

ben le pb tu vois, c que la convention C rajout un _ devant le nom de fonction
donc essaye d'en rajouter un devant tes fonctions fortrans

deja fait, marche pas  :sweat:

Reply

Marsh Posté le 10-10-2003 à 16:55:55    

http://www.ibiblio.org/pub/languag [...] h1-11.html
 

Citation :


[...]
Routines names
 --------------
 On some machines (e.g. UNIX) the FORTRAN compiler appends a trailing  
 underscore to FORTRAN routine names, both in subroutine/function  
 definitions and when calling them.  
 
 Why add the underscore suffix? Possible explanations are:
 
   o  Prevent name clashes of user-written routines with the  
      routines in the system libraries used by the compiler  
      at link time (the routine names in these libraries  
      usually don't have a trailing underscore).  
 
      For example, UNIX system routines may have simple names,
      that may be used in a user program.
 
   o  Prevent "amateurish" mixed-language programming.  
      Without proper understanding these attempts may produce  
      erroneous results.  
 
 In mixed-language programs on such machines, the linker will have a  
 problem when trying to match routine calls and routine code in the  
 object code.  
[...]


 
Ca pourra peut être t'aider, pas le temps de tout lire


---------------
Le Tyran
Reply

Marsh Posté le 10-10-2003 à 16:58:50    

LetoII a écrit :

http://www.ibiblio.org/pub/languag [...] h1-11.html
 

Citation :


[...]
Routines names
 --------------
 On some machines (e.g. UNIX) the FORTRAN compiler appends a trailing  
 underscore to FORTRAN routine names, both in subroutine/function  
 definitions and when calling them.  
 
 Why add the underscore suffix? Possible explanations are:
 
   o  Prevent name clashes of user-written routines with the  
      routines in the system libraries used by the compiler  
      at link time (the routine names in these libraries  
      usually don't have a trailing underscore).  
 
      For example, UNIX system routines may have simple names,
      that may be used in a user program.
 
   o  Prevent "amateurish" mixed-language programming.  
      Without proper understanding these attempts may produce  
      erroneous results.  
 
 In mixed-language programs on such machines, the linker will have a  
 problem when trying to match routine calls and routine code in the  
 object code.  
[...]


 
Ca pourra peut être t'aider, pas le temps de tout lire

:jap:  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed