Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Linking problems in release mode

Chris_Ower
Beginner
685 Views
I have a program which links without problems in debug mode but it fails horribly when linking in release mode.
Fortran 11.1 is the version I use is VS 2005.

I have had it working in May so it is strange. Since then I have installed Visual Studio 2010 and Fortran version 12.0 but nothing else.


I have tested to delete all object files and created module files but with the same result.

I have looked at the settings and nothing looks strange and I have no idea what to do

/Chris
PS: I looked especially at the settings Fortran->Libraries and Runtime Library. IN debug mode I have Debug Multithreaded (/libs:static /threaded /dbglibs)
I release Ihave Multithreaded (/static/threaded)




The message is:

1> Creating library ..\\intermediate\\release\\dll\\dll.lib and object ..\\intermediate\\release\\dll\\dll.exp

1>libirc.lib(qcomp.obj) : error LNK2001: unresolved external symbol __fltused

1>libirc.lib(ia32_mulq.obj) : error LNK2019: unresolved external symbol __fltused referenced in function ___mulq.J

1>libirc.lib(ia32_divq.obj) : error LNK2001: unresolved external symbol __fltused

1>Interface_gasTable.lib(Call_GasTable.obj) : error LNK2001: unresolved external symbol __fltused

1>libirc.lib(q2fp.obj) : error LNK2001: unresolved external symbol __fltused

1>libirc.lib(q2ints.obj) : error LNK2001: unresolved external symbol __fltused

1>libirc.lib(fp2q.obj) : error LNK2001: unresolved external symbol __fltused

1>libirc.lib(ia32_addsubq.obj) : error LNK2001: unresolved external symbol __fltused

1>libmmt.lib(sinf_gen.obj) : error LNK2001: unresolved external symbol __fltused

1>libmmt.lib(libm_error.obj) : error LNK2001: unresolved external symbol __fltused

1>libmmt.lib(libm_reduce_pi04f.obj) : error LNK2001: unresolved external symbol __fltused

1>libirc.lib(bpv_heap.obj) : error LNK2001: unresolved external symbol __fltused

and it continues and continues ......

0 Kudos
5 Replies
mecej4
Honored Contributor III
685 Views
Please post the build log or the linker command, because there we should see the cause of the copious linking errors that you posted above. It may be that there is a mix-up of some objects/libraries compiled with /MT and others with /MD in effect.
0 Kudos
Chris_Ower
Beginner
685 Views
Thanks for the tip to look in the logfile.

I made a copy of the program with all its files and "played" around with different setings.

At last I had it working again in release mode.

The program is a dll-file and I work in Visual Studio 2005

In debug mode I hadthese settings in linker->input-> ignore specfic library "libcmtd.lib;msvcrtd.lib"

This worked OKwhen linking.

In relase mode I hadthese settings in linker->input-> ignore specfic library "libcmt.lib;msvcrt.lib"

This worked OK in May (I did install visual studio 2010 after that) but not now.

If I have the debug version "libcmtd.lib;msvcrtd.lib" in relase mode it does work properly. I cannot expain the reason behind this but maybe it can help someone with same problem?


0 Kudos
mecej4
Honored Contributor III
685 Views
Now we know which libraries you asked it to ignore.

The other half of the question is, which libraries did you ask to be included, whether in the project file, environmental variables, registry values or the compiler configuration file?

Given a fixed set of libraries, we may either specify by inclusion or exclusion, but the ones chosen for linking have to be compatible.
0 Kudos
Samba_Ba1
Beginner
685 Views
Hello All,

I have exactly the same problem.
Actually sometimes it builds and sometimes it does not Build.
I am using Visual studio 2010 with the compiler Fortran 12, detailed below with the build log.
I don not have any "ignore specific library" and I added the dll: ST1_dll to the additional dependency of the linker.

DO you have an idea on how to solve the problem?

THanks,
Samba.

Build Log

Build started: Project: ST1_client, Configuration: Debug|Win32

Output

Compiling with Intel Visual Fortran Compiler XE 12.0.0.104 [IA-32]...

ifort /nologo /debug:full /Od /I"d:\documents\visual studio 2010\Projects\ST1\ST1_Dll\../Intermediate/Debug" /warn:interfaces /module:"../Intermediate/Debug\" /object:"../Intermediate/Debug\" /Fd"../Intermediate/Debug\vc100.pdb" /traceback /check:bounds /libs:dll /threads /dbglibs /c /Qvc10 /Qlocation,link,"D:\Program Files\Microsoft Visual Studio 10.0\VC\\bin" "d:\documents\visual studio 2010\Projects\ST1\ST1_client\ST1_client.f90"

Linking...

Link /OUT:"../Build/Debug\ST1_client.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"d:\documents\visual studio 2010\Projects\ST1\Build\Debug\ST1_client.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"d:\documents\visual studio 2010\Projects\ST1\Build\Debug\ST1_client.pdb" /SUBSYSTEM:CONSOLE /HEAP:10000000 /STACK:10000000 /IMPLIB:"d:\documents\visual studio 2010\Projects\ST1\Build\Debug\ST1_client.lib" ../Build/Debug/ST1_Dll.lib "../Intermediate/Debug\ST1_client.obj" "d:\documents\visual studio 2010\Projects\ST1\Build\Debug\ST1_Dll.lib"

Link: executing 'link'

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NSENSORS

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NNODES

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NELEM

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NDOF

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NMECHS

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NBENDS

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NBIAS

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NSTABS

ST1_client.obj : error LNK2001: unresolved external symbol _COMMON_VARS_RENAMED_mp_NVAR_STABS

../Build/Debug\ST1_client.exe : fatal error LNK1120: 9 unresolved externals

ST1_client - 10 error(s), 0 warning(s)



0 Kudos
Steven_L_Intel1
Employee
685 Views
Note - you added the DLL's export library to the additional dependencies, not the DLL itself. One doesn't link to DLLs directly. But the linker is already seeing that export library so you have added it twice. No harm.

Where is module COMMON_VARS_RENAMED defined? These errors indicate that the names from that module are not found in the linker inputs. Are these variables or routines? If they are in the DLL, have you added DLLEXPORT directives for them?
0 Kudos
Reply