fatal error LNK1169: one or more multiply defined symbols found。
属于编译联接的常见问题之一,原因是在不同的源文件重复定义变量。
比如project1有2个c或cpp文件,假设为a.c,b.c如果
1,定义了相同名字的变量;
2,包含了同样的头文件(其中定义了非局部变量);
这样在编译生成的a.obj,b.obj文件中都会为为这个同一变量
分配空间,linker会作名称检查,如果出现相同名字就会出现
fatal error LNK1169: one or more multiply defined symbols found
解决方法,对于第一种情况,用external关键字屏蔽其它重复定义即可;
实际上情况2更隐蔽常见,只能避免定义非局部变量.
详细原因,参见:http://blog.sina.com.cn/s/blog_497978f80100aej3.html