0
点赞
收藏
分享

微信扫一扫

[C++]opengl相关库报错lnk2019无法解析的外部符号__imp


VS2019开发一个项目,报错:如下,

error LNK2001: unresolved external symbol __imp___CrtDbgReport 

error LNK2001: unresolved external symbol __imp___invalid_parameter

error LNK2001: unresolved external symbol __imp___CrtDbgReportW 

error LNK2001: unresolved external symbol __imp___CrtDbgReportW 

error LNK2001: unresolved external symbol __imp___CrtDbgReportW

error LNK2001: unresolved external symbol __imp___free_dbg 

error LNK2001: unresolved external symbol __imp___malloc_dbg

对应的中文版报错如下,
严重性    代码    说明    项目    路径    文件    行    禁止显示状态
错误    LNK2019    无法解析的外部符号 __imp__invalid_parameter,
错误    LNK2019    无法解析的外部符号 __imp__calloc_dbg,
错误    LNK2019    无法解析的外部符号 __imp__CrtDbgReport,
错误    LNK2019    无法解析的外部符号 __imp__free_dbg,
错误    LNK2019    无法解析的外部符号 __imp__malloc_dbg,
错误    LNK1120    5 个无法解析的外部命令    

看名称,应该是某个库找不到,但到底是哪个库呢?能过搜索后发现,是ucrtd.lib这个库。

其中有时候可以用下面解决方法:

链接legacy_stdio_definitions.lib: #pragma comment(lib, “legacy_stdio_definitions.lib”)
–> PASS.

原因是VS2019将许多标准库采用内联方式处理,即不需要特别链接ucrt,所以需要特别指定使用legacy stdio lib来让链接器通过。

举报

相关推荐

0 条评论