error LNK2001: 无法解析的外部符号 __CrtDbgReport - 小众知识

error LNK2001: 无法解析的外部符号 __CrtDbgReport

2022-10-20 16:31:16 苏内容
  标签:
阅读:5107

__CrtDbgReport说明

http://msdn.microsoft.com/zh-tw/library/vstudio/8hyw4sy7(v=vs.90).aspx

  1. int _CrtDbgReport( 
  2.    int reportType,
  3.    const char *filename,
  4.    int linenumber,
  5.    const char *moduleName,
  6.    const char *format [,
  7.    argument] ... 
  8. );
  9. int _CrtDbgReportW( 
  10.    int reportType,
  11.    const wchar_t *filename,
  12.    int linenumber,
  13.    const wchar_t *moduleName,
  14.    const wchar_t *format [,
  15.    argument] ... 
  16. );

这个函数是用来判断错误类型的。

可是问题出现在这里:

  1. // crt_crtdbgreport.c
  2. #include <crtdbg.h>
  3. int main() {
  4. #ifdef _DEBUG       //这里定义了一个宏
  5.    CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
  6. #endif
  7. }

解决方法:

用release版,或者把debug版本中预编译头的_debug去掉,这样在函数执行的时候就不会出现这个问题了。

具体是为什么每次只要执行CrtDbgReport 就出现错误我也不太明白。

其他的什么改多线程为多线程调试…… 貌似都没用

还有 忽略libcmt.lib库 这个是处理冲突的库的。感觉这个问题可能也是库冲突,可是找不到。



在vs2019中遇到编译器报错:

错误 LNK2001 无法解析的外部符号 __imp__CrtDbgReport


在这里插入图片描述


解决

1.打开项目“”属性”,

在这里插入图片描述


2.选择:C/C++ ->预处理器

在这里插入图片描述


3. 清空 “预处理器定义”

在这里插入图片描述


4.编译通过

在这里插入图片描述


扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1