Search
Support & Downloads
All of Support
This Category
This Product
Software Products
Intel® C++ Compiler for Windows*
Warning LNK4221: no public symbols found; archive member will be inaccessible

Symptom(s):

When you build a C/C++ program with the Intel® C++ Compiler or Microsoft* 64-bit compilers, the linker may issue the following warning message:

Warning LNK4221: no public symbols found; archive member will be inaccessible

Cause:

This warning occurs if an object file is added to a library module and the said object file has absolutely no public symbols in it and will therefore never be pulled out during a link cycle. In other words, the .obj file will never be pulled from the lib and used by the linker.

Solution:

The warning indicates that a file (object) was added to an archive (library) that has no public symbols. The object will not be accessible via subsequent linker commands.

Of course, there is little reason to add such an object file to a library module, unless the .lib file is just a repository for .obj files. In this case, it is "safe" to ignore the warning.

For more information on this linker warning, go to Microsoft's Knowledge Base at http://support.microsoft.com/default.aspx?scid=kb;EN-US;815773.  

   This link will take you off of the Intel Web site. Intel does not control the content of the destination Web Site.

This applies to:
Intel® C++ Compiler for Windows*

Solution ID: CS-004737 (1.0.3461018.3460041)
Date Created: 01-Jan-2003
Last Modified: 11-Apr-2007
Back to Top