【发布时间】:2016-08-28 06:58:20
【问题描述】:
在构建包含重复定义的函数的静态库时,MSVC++ 2013 只给了我一个警告:
LNK4006 "... already defined in ... second definition ignored"?
恐怕一个警告太容易错过了。如果发现同一函数的多个定义(在不同的 .cpp 文件中),是否可以让 MSVC++ 2013 报告错误并导致构建失败?
请注意,解决方案 suggested here 的反面(即项目设置 > 链接器 > 取消选中“强制文件输出”)不适用,因为它适用于可执行文件,但在这个问题中,静态库是焦点,因此没有“链接器” " 项目选项。
【问题讨论】:
-
您总是可以将警告视为错误。
-
@Rakete1111,谢谢,我认为此选项仅适用于 C/C++ 编译器,但不适用于链接器或图书管理员。
-
实际上,我认为这也是链接器警告,但现在我不确定:/
-
@Rakete1111,在项目属性(以及编译器)下,链接器和图书馆员有单独的“将警告视为错误”。您可以将此作为答案发布。
标签: visual-studio visual-studio-2013 linker