|
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:
|