I imagine this has come up before in various guises. I would like to get rid of WARNING messages by means other than simply switching them off (too much like shooting the messenger). Our application features a number of dll's some of which make use of a COMMON block within a module. (This was to get around the problem of exporting module EQUIVALENCE variables - we export a COMMON block in stead.) On the other hand the routines within the dll also make use of the exported COMMON block and hence the warning messages "Locally defined symbol xxxxx imported in yyyyy."
Does anyone have a way of getting around this and avoiding the warnings. I have to add that no harm seems to be done so far as I have been able to tell.
Tom
链接已复制
The warning is harmless. The only way to get rid of it is to add it to the list of messages to "ignore" in the linker properties. You get this when a DLLIMPORT is seen for a symbol defined in the linked image. That will happen if you DLLEXPORT something in a module and then USE that module.
same problem here... But I do not find that option to turn it off (Im still using IVF 11.0).
Or is it now possible to change the code so that I can use DLLEXPORT without getting the warning messages?
Markus
Edit: When I use these options (/ignore:4049/ignore:4217) inlinker command line, most of the warning messages are gone. But not this one, which has no linker warning number (locally defined symbol imp__PROTEX_mp_USERCHECK imported). Is there a solution for this as well?
[bash]module Protex type userCheckType character*32 :: hash character*10 :: name end type ! Number of User type(userCheckType) userCheck(2) !DEC$ ATTRIBUTES DLLEXPORT :: userCheck end module Protex ! *************************************************************************** subroutine initUserCheck() !DEC$ ATTRIBUTES DLLEXPORT :: initUserCheck use Protex implicit none userCheck(1)%hash = "A1C1BF7ECB23F004CDA690E3D45D11213FFBBCA1" userCheck(1)%name = "MaxMueller" userCheck(2)%hash = "906FB69A221B0429D2A86B34E2FA6C1078AB9F06" userCheck(2)%name = "John Doe" end subroutine initUserCheck[/bash]
warning : locally defined symbol __imp__PROTEX_mp_USERCHECK imported
Well switch to XE in January. At the end of the year our company is so poor that we cant afford a new license ;-)
Markus
