Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

QuickWin Question

rahzan
New Contributor I
569 Views
under CVF6.6B
! A module (in static lib) is compiled with
df /c /check:bounds /arch:host /libs:dll /nolibdir /nologo /warn:all /traceback file.f90
libs:dll is needed since it is primarily called from cvf dlls, so I assume it is needed.
A console app using the modole app works if compiled with:
df /nologo file.f90 /check:bounds /arch:host /libs:dll /warn:all /link
A Quickwin app using the module works but gives the LNK4098 warning
df /nologo file.f90 /check:bounds /arch:host /libs:qwins /warn:all /link
Questions:
1.
is there a/libs:setting to make the warning go away? eg compile the module with different libs and still be compatible with dlls who call it? or change the qwin app to accept /libs:dll?
2.
If not, What is the consequence of ignoring the warning?
Thanks,
Tim
0 Kudos
3 Replies
Steven_L_Intel1
Employee
569 Views
/nolibdir
0 Kudos
rahzan
New Contributor I
569 Views

Thanks,

Sorry to be Dense. But The best I understand the library compatibility warning is that runtmie libraries depend on the final type of application so you cannot simply get any fortran static lib and link it in with any ol' application, they must match in the way they were compiled (a major hassle due to having to maintain differnt versions of the the same library). Due to this limited understanding,I cannot always decipher the resulting errors.

I assume that /nolibdir is to be inserted on the compile directive OF THE QUICKWIN app.

If I do that, the warning goes away, but now I get an unresoved external on the moduel routine the quickqin app is calling but the full decorated name is reported in the error:

_modulename_mp_routinename

So it is as if the mod file is located but not the lib file. If try to I tell the linker where to find the library, then there is no end of paths I have to specify on the command line. So I guess I do not know how to use /libdir.

alt, Perhaps you meant to put /nolibdir on the module's compiler.

further help will be very much appreciated.

Tim

0 Kudos
Steven_L_Intel1
Employee
569 Views
/nolibdir is to be added to the build of your static library. This tells the compiler to not insert library directives in the object module. You are then dependent on the executable build specifying the right libraries.
0 Kudos
Reply