winsock 的 v8 发布模式链接器错误

Posted

技术标签:

【中文标题】winsock 的 v8 发布模式链接器错误【英文标题】:v8 release mode linker error with winsock 【发布时间】:2011-06-01 08:25:56 【问题描述】:

在我接受了我上一个问题的答案后,这个主题变成了一个副主题,所以我将它作为一个单独的主题放在这里,以保持整洁,我相信这会让它对其他人更有用。

我正在开发 MS Visual Studio 2005。

我在发布模式下使用 v8 构建项目,并且收到与 winsock 相关的链接器错误,即使 winsock 库已经在我的附加依赖项中。

对于发布模式和调试模式,我的附加依赖项列表是相同的。它在调试模式下完美运行,我只在发布模式下得到链接器错误。

这是我的附加依赖字符串:

Ws2_32.lib wininet.lib rasapi32.lib iphlpapi.lib Psapi.lib winmm.lib wsock32.lib msvcrt.lib $(SolutionDir)\external_libs\debug\v8.lib $(SolutionDir)external_libs\release\v8_base.lib $(SolutionDir)external_libs\release\v8_snapshot.lib

非常感谢任何可能的帮助。

更新:

我将依赖项减少到:

Ws2_32.lib Psapi.lib winmm.lib msvcrt.lib $(SolutionDir)\external_libs\release\v8.lib $(SolutionDir)external_libs\release\v8_base.lib

仍然得到未解决的外部问题:

1>v8_base.lib(platform-win32.obj) : error LNK2001: unresolved external symbol __imp__freeaddrinfo@4
1>v8_base.lib(platform-win32.obj) : error LNK2001: unresolved external symbol __imp__getaddrinfo@16
1>v8_base.lib(platform-win32.obj) : error LNK2001: unresolved external symbol __set_abort_behavior

【问题讨论】:

...错误信息会很好。考虑到如果你有ws2_32,它就不会是Unresolved External 【参考方案1】:

您的依赖项列表中有调试和发布文件夹的路径。尝试用$(Configuration)替换那些。

【讨论】:

我将依赖项减少到: Ws2_32.lib Psapi.lib winmm.lib msvcrt.lib $(SolutionDir)\external_libs\release\v8.lib $(SolutionDir)external_libs\release\v8_base.lib,并且仍然得到未解析的外部:1>v8_base.lib(platform-win32.obj):错误 LNK2001:未解析的外部符号 __imp__freeaddrinfo@4 1>v8_base.lib(platform-win32.obj):错误 LNK2001:未解析的外部符号 __imp__getaddrinfo@16 1>v8_base.lib(platform-win32.obj) : error LNK2001: unresolved external symbol __set_abort_behavior ...

以上是关于winsock 的 v8 发布模式链接器错误的主要内容,如果未能解决你的问题,请参考以下文章

链接器错误 LNK2038:在发布模式下检测到不匹配

链接器命令失败,退出代码为 1 - 重复符号 __TMRbBp

奇怪的链接器错误

为啥链接器链接了错误的函数?

GLEW 链接器错误

RestKit CocoaPods 链接器错误