- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using the Visual Fortran Compiler XE 15.0.0.070 running under Windows 7.
My program compiles and links correctly in 32 bit mode, but in 64 bit mode I get
error #6284: There is no matching specific function for this generic function reference. [GETFILEINFOQQ]
I am also using the Math Kernel Library with the option /Qmkl:parallel. I get the following error messages associated with this:
ifort: command line warning #10159: invalid argument for option '/Qmkl'
The compiler command line is:
/nologo /O3 /Qopt-prefetch=2 /assume:buffered_io /Qip /Qopt-matmul /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc100.pdb" /check:none /libs:dll /threads /Qmkl:parallel /c
The linker command line is:
/OUT:"x64\Release\SquallDll1.dll" /NOLOGO /MANIFEST /MANIFESTFILE:"x64\Release\SquallDll1.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /SUBSYSTEM:WINDOWS /IMPLIB:"C:\Users\chris\Documents\Visual Studio 2010\Projects\SQUALL v1.2\64 bit\DLL\SquallDll1\x64\Release\SquallDll1.lib" /DLL /qnoipo
Should I be using other libraries?
ChrisG
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can't reproduce error #6284 with my own example (tried both IA-32 and Intel 64 compilers). You'll need to provide your own reproducer. My command line was:
/O3 /Qopt-prefetch=2 /assume:buffered_io /Qip /Qopt-matmul /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc120.pdb" /libs:dll /threads /Qmkl:parallel /c
Regarding 'invalid argument for /Qmkl' -- you did install MKL along with the compiler, right?
Patrick
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
the last parameter of GETFILEINFOQQ is a handle which is 4 bytes for win32 and 8 bytes for win64. Having the wrong byte count on the call will probably be the problem.
use ifwin, only: handle integer(handle) :: handle_variable_name
will probably fix it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks app4619 - it looks sensible to me and I'll try it.
Patrick: Yes I installed MKL; I have a folder ......./Intel/Composer XE 2015/mkl/bin/intel64 containing mklvars_intel64.bat and ......./Intel/Composer XE 2015/mkl/lib/ia32 and intel64.
Thanks for your help
ChrisG
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Chris,
Thanks for confirming you have MKL installed. Regarding your issue with /Qmkl:parallel, a colleague who has VS2010 installed will check if the issue can be reproduced with that particular version of VS (I couldn't reproduce it with VS2013). It's possible to have a defect in the IDE integration that only exists for a particular combination of VS + compiler. I'll update this thread as I learn more.
Patrick
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This particular error has nothing to do with VS version nor with MKL. It is simply an incorrect declaration of the argument to GETFILEINFOQQ.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks everyone. The fix suggested by app4619 fixes everything except an error message
patmat.lib(PATMAT.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
which is telling me I need to recompile PATMAT.dll as 64 bit, which I will now do.
ChrisG

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page