未解析的外部符号 fabs, cos, sin

Posted

技术标签:

【中文标题】未解析的外部符号 fabs, cos, sin【英文标题】:unresolved external symbol fabs, cos, sin 【发布时间】:2018-01-14 13:55:29 【问题描述】:

EDIT2:通过将 libucrt.lib 添加到链接选项解决了问题

我正在尝试使用 VisualC++ 2017 编译器编译仅资源的 DLL 文件。这是我的命令行:

cl test.cpp /link /dll /noentry "E:\CXGE\build\Debug\CXGE.lib"

Test.cpp 包含一些基本函数和数学运算。但由于某种原因,由于此链接错误,我无法在我的 DLL 文件中使用任何 c++ 数学函数,例如 std::sin、std::cos 和 std::abs:

test.obj : error LNK2019: unresolved external symbol fabs referenced in function "double __cdecl abs(double)" (?abs@@YANN@Z)

谁能说我需要链接哪些库来修复这些错误?我在 Windows 10 上,使用 Visual C++ 2017 编译器

编辑:我正在为 VS 2017 使用 X64 本机工具命令提示符

【问题讨论】:

你有没有从他们的名字中省略std:: 不,我总是在那些之前使用 std:: 添加开关以包含适当的 CRT 参见:msdn.microsoft.com/en-us/library/abx4dbyh.aspx 好的,谢谢,通过将 libucrt.lib 添加到链接器选项解决了问题 【参考方案1】:

缺少 C 运行时库。要么包含它们,要么尝试使用 VS 命令提示符进行编译。

【讨论】:

是的,通过将 libucrt.lib 添加到链接器参数来解决它:D【参考方案2】:

这些函数在数学库中。在 Linux 下,您通常只需在编译行中添加“-lm”即可链接它。我不确定 VC++ 的等价物,但希望它是类似的。

【讨论】:

我可以在 OPs 问题中看到两个指标表明它不是 Linux 环境。 是的,我知道,它在 linux 下很容易修复 :(

以上是关于未解析的外部符号 fabs, cos, sin的主要内容,如果未能解决你的问题,请参考以下文章

未解析的外部符号 PriorityQueue [关闭]

OpenCV:未解析的外部符号

C++ - 未解析的外部符号

未引用函数的“未解析的外部符号”

未解析的外部符号 C++

错误 LNK2001:未解析的外部符号 WINAPI [重复]