[maillist] fortran & c

=?iso-8859-1?Q?J=FCrgen?= Gumpinger (j.gumpinger@netway.at)
Fri, 11 Jun 1999 14:24:42 +0200

Hallo!
Ich habe für alle fortran routinen den aufruf mit dem _ versehen. Wie
geht das aber, wenn ich aus einem fortran-file eine routine aus dem
cpp-file aufrufen will? Ich komm da mit den _ durcheinander. Bis jetzt
habe ich es so genmacht:
CPP_FILE:
extern "C" void error_to_tcl_ (
int& errNr, int& analysisStopped
);
#ifdef WIN32
#define ERROR_TO_TCL
void error_to_tcl_ (int& errNr, int& analysisStopped)
#endif
#ifdef sgi
#define ERROR_TO_TCL
void error_to_tcl_ (int& errNr, int& analysisStopped)
#endif
#ifndef ERROR_TO_TCL

void error_to_tcl_(int& errNr, int& analysisStopped)
#endif
{
currentFemfatData->error_to_tcl(errNr, analysisStopped);
}
void FemfatData::error_to_tcl (int& errNr, int& analysisStopped) {
//printf("calling error_to_tcl in c++: errNr= %d\n",errNr);
}

Und in einem FORTRAN FILE::
call error_to_tcl(IERROR,IASTOP)

Beim Linken bekomme ich den Fehler:

fortran/felibf.a(gulmud.o): In function `gulmud_':
gulmud.o(.text+0x254): undefined reference to `error_to_tcl__'

Und zweitens: Ich habe in meinem cpp file immer so ifdef sgi ifdef
pc,... Gibt es das auch für Linux: ifdef linux???

Danke

Jürgen