Intel® Fortran Compiler for Windows* - LNK2001:unresolved external symbol __security_check_cookie on Windows* 2003 RC1

When using the Intel® C++/Fortran Compiler 8.1 for Itanium®-based applications on the Microsoft Windows* Server 2003 with Service Pack 1 SDK - RC1 (Build 1289), you may run into the following linker error:

>>icl hello.c
LIBC.lib(a_str.obj) : error LNK2001: unresolved external symbol __security_cookie
The work-around is to link with one of the following libraries or use /MD:
  1. bufferoverflowU.lib: This library implements functionality for security cookie verification that can be used in the user mode and in applications that use Win32 API. Most of applications will link to this library.
    >>icl hello.c bufferoverflowU.lib
  2. bufferoverflowK.lib: This library implements check of a security cookie that works in the kernel mode of the OS. Services and subsystems that run in the kernel mode should be linked to this library:
    >>icl hello.c bufferoverflowK.lib
  3. bufferoverflow.lib: This library implements functionality for security cookie verification that can be used in the user mode. However it is different from bufferoverflowU.lib because it can be used in services and applications that do not use Win32 API:
    >>icl hello.c bufferoverflow.lib
  4. Use /MD:
    >>icl hello.c /MD
More Information:
In the Microsoft Windows Server 2003 with Service Pack 1 SDK - RC1 (Build 1289) and later, the CRT (C Runtime Libraries: LIBC.LIB, LIBCMT.LIB) has the Security Checks Enabled - this requires the linking of an additional library (bufferoverflowX.lib) to resolve those external APIs. The exact name of the library depends on the kind of application you are developing.

Note: If you are developing applications with the Intel® C++/Fortran Itanium® Compiler 8.1 for Itanium®-based applications, please see the following FAQ:

Operating System:

Windows Server* 2003
For more complete information about compiler optimizations, see our Optimization Notice.