View previous topic :: View next topic |
Author |
Message |
Anonymous Guest
|
Posted: Tue Sep 27, 2005 8:40 pm Post subject: case-sensitive calls to static libraries |
|
|
I've noticed an issue making subroutine/function calls to the IMSL math libraries using FTN95. Previously, I used Absoft ProFortran to develop applications and explicitly referenced an alias file to re-map main program calls to the proper library references. I've looked through the alias file and edited the original program code to reference the corresponding library-level name. Unfortunately, that does not correct the missing symbol error during linking. My hutch is that FTN95 makes all external library calls in uppercase whereas the alias file clearly identifies lowercase naming. How can I correct this apparent mismatch?
Phillip D. |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7925 Location: Salford, UK
|
Posted: Wed Sep 28, 2005 12:45 am Post subject: case-sensitive calls to static libraries |
|
|
If you are using the IMSL Fortran Library then the first thing to try is /IMPORT_LIB <DDLname> on the FTN95 command line. You can get this in a Plato project by adding a reference in the Project Explorer window and selecting STDCALL in its Properties. |
|
Back to top |
|
|
Anonymous Guest
|
Posted: Thu Sep 29, 2005 11:49 am Post subject: case-sensitive calls to static libraries |
|
|
I tried it both ways, neither work. Again, I go back to case sensitive calling conventions. The FTN95 compiler appears to convert everything to uppercase (which I believe is CVF consistent), however the alias file that I have used with Absoft ProFortran clearly indicates lowercase calling conventions to the library itself (both uppercase and lowercase program-level calls are re-mapped to decorated(?) lowercase calls). Is that the issue or is it something else? Thanks. |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7925 Location: Salford, UK
|
Posted: Fri Sep 30, 2005 1:34 am Post subject: case-sensitive calls to static libraries |
|
|
It is possible that you are not using a Fortran library (by a Fortran library I mean a library written in Fortran). I would start by finding out what kind of library it is. There is an ISML Fortran library and one in C which I think may be nolonger available.
If it is a C library then you should search in FTN95.chm for STDCALL and "Calling C functions from FTN95". You can also get a idea of what to do by looking at some of the *.ins files in the compiler INCLUDE folder (those that use STDCALL). Your task will be to create an equivalent .ins file for IMSL.
You may also get some useful information by typing "IMSL FTN95" into Google or Google Groups. |
|
Back to top |
|
|
|