繁体   English   中英

Visual Studio“对象文件未定义任何以前未定义的符号”

[英]Visual Studio “object file does not define any previously undefined symbols”

在Visual Studio 2013中使用C ++时,我遇到了一个非常奇怪的警告/错误。

我有一个静态库和一个控制台应用程序。

静态库导入4个第三方.lib文件及其标题。 控制台应用程序导入静态库和原始4 .lib文件的标头,以便我可以使用原始4 .libs和我的.lib中的代码。

(我认为在这种情况下这是正确的设置,如果有更好的方法,请告诉!)

但是,当我构建静态库时,我收到一个警告:“LNK4221:此目标文件未定义任何先前未定义的公共符号,因此对于导入的每个.lib,任何使用此库的链接操作都不会使用它。

但是,如果没有来自图书馆,它在哪里获取代码? 如果我从导入中删除.libs,则构建失败,表明它需要它们! 我不知道在这种情况下该怎么做。 我很乐意让.libs按原样导入并忽略警告,但是当我尝试禁用它们时(在禁用特定警告,“4221”,在编译器选项中),警告不会被禁用!

编辑:4个第三方.libs是独立的 - 他们不使用彼此的代码,所以我需要导入所有这些代码。

我真的很茫然 - 任何建议都会非常感激。

我找到了一种在链接器命令行上使用/ignore:禁用警告的方法,但我仍然很困惑为什么链接器首先发出警告,当删除库作为输入时导致多个“未解析的外部符号”错误。

哦,问题(sorta)解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM