未解析的外部符号 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的主要内容,如果未能解决你的问题,请参考以下文章