Quantcast
Channel: Intel® Fortran Compiler
Viewing all articles
Browse latest Browse all 3270

Fail to link 64-bit Code

$
0
0

I have a working 32-bit software library written in Fortran with low-level stuff in C/C++ It has worked for years.

It is fine.

When I re-build the library in 64-bit mode, none of the C functions are linked in. I've checked the linker options, and they all seem to be right. The project appears to be referencing the 64-bit libraries.

Would someone mind just looking some sample  INTERFACE code and tell me whether there is anything at all that would cause a problem 

      SUBROUTINE PBZQS(MODE, IXORIG, IYORIG, NX, NY)

      INTEGER MODE

      INTEGER IXORIG, IYORIG

      INTEGER NX, NY

      INTERFACE

        SUBROUTINE JB_ZBSpecInquireImageSize(MODE, IXORIG, IYORIG, NX,

     1      NY)

          INTEGER MODE

          INTEGER IXORIG, IYORIG

          INTEGER NX, NY

          !DEC$ ATTRIBUTES C, ALIAS: '_JB_ZBSpecInquireImageSize' ::

     1      JB_ZBSpecInquireImageSize

          !DEC$ ATTRIBUTES VALUE :: MODE

          !DEC$ ATTRIBUTES REFERENCE ::  IXORIG, IYORIG, NX, NY

        END

      END INTERFACE

      CALL JB_ZBSpecInquireImageSize(MODE, IXORIG, IYORIG, NX, NY)

      END

The linker comes up with:unresolved external symbol'_JB_ZBSpecInquireImageSize

Reassurance from someone "that should work" is all I need.

 

I observe that the project includes the library comdlg32.lib. Is that going to be right for a 64-bit application?

Is there an easy way to look at the contents of the .lib file that is being linked in?


Viewing all articles
Browse latest Browse all 3270

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>