链接* .libs时链接器如何解决歧义?

时间:2011-08-12 16:11:04

标签: c++ visual-studio-2010 linker

经过很长时间未解决的外部问题后,我发现VS2010链接了错误的.lib文件。

遗憾的是,文件名称相同。

在项目属性中设置了具有链接(不需要的)lib的文件夹 具有未链接(通缉)lib的文件夹继承自其他属性表

期望的lib是更新的日期,不受欢迎的是更老的。

Linker选择了不需要的人(如上所述)。

链接库有哪些规则? 链接器是否应该至少给出一些模棱两可的警告?

编辑: 符号仅在NEW lib中定义。只有当我删除OLD lib(没有更改链接器设置)

时才会搜索新的lib

1 个答案:

答案 0 :(得分:0)

将LIB视为链接器作为编译器的头。 LIB仅具有导出符号的签名,除非它是静态LIB。 LIB文件没有附加任何版本

两个LIB文件可以具有相同的名称,因为两个头文件可以具有相同的名称。程序员必须使用正确的LIB /头文件。如果链接器没有找到所有符号,或者符号不正确,它将报告错误(就像编译器将对头文件中的不一致符号一样)。