链接器工具警告 LNK4221 未找到公共符号;

MSDN:
错误消息 链接器工具警告 LNK4221
未找到公共符号;存档成员将不可访问
向库添加了不具有公共符号的 .obj 文件。对象中的符号在后面的包括 .lib 的链接器操作中将不可访问。
若要解决此警告,请不要将不具有公共符号的 .obj 文件链接到库中。

(1)编译器将源文件编译成汇编代码,然后由汇编器(assembler)翻译成机器指令
(再加上其它相关信息)后输出到一个个目标文件(object file,VC的编译器编译出
的目标文件默认的后缀名是.obj)中;(2)链接器(linker)将一个个的目标文件
(或许还会有若干程序库)链接在一起生成一个完整的可执行文件。
  编译器编译源文件时会把源文件的全局符号(global symbol)分成强(strong)和弱(weak)
两类传给汇编器,而随后汇编器则将强弱信息编码并保存在目标文件的符号表中。
编译器在连接的时候未找到公共符号,So....

原文地址:https://www.cnblogs.com/Crysaty/p/6625690.html