本文旨在解决做作业中遇到的莫名其妙的错误。

本文包含VS和VC++6一些差别上的处理

 

1. 调用scanf()报错:

Severity Code Description Project File Line Suppression State
Error C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. HW_datastruct c:\users\yu\source\repos\hw_datastruct\hw_datastruct\main.cpp 39

如日志所述:这个函数不安全,请使用scanf_s代替。如果实在要使用,请使用 _CRT_SECURE_NO_WARNINGS 禁用该警告。

由于我们只是做作业,所以直接禁用是最好的。由于使用了#define预处理指令,所以这个禁用语句不会使 不支持该语句的编译器 报错,如gcc MSVC6++内置的cl编译器

解决方案:在文件最顶部使用

#define _CRT_SECURE_NO_WARNINGS

禁用该警告。

 

 

 

 

2. 关于#include "sqlist.cpp"

首先,引号表示优先在当前目录搜索

所以:把sqlist.cpp放在同目录下,再打开含main()的cpp源文件  【此时IDE会自动检测并添加sqlist.cpp到依赖里】

如果已经把sqlist添加到了源文件而非依赖区,右击改文件——从项目排除

 

 VS(VC++6) 通用,不会有LNK2005报错。

关于学校古老的作业

 

关于此处的LNK2005分析:应该是mian()中include了sqlist,正常情况下sqlist就不需要编译,但由于缺乏认知,我把sqlist添加到了 工程源文件Source Files(这个是会被IDE直接编译的)

所以导致了main编译完成后再编译sqlist,

而"main中include的部分" 是和main一起编译链接并生成main.exe的,所以才会提示main.obj里和sqlist冲突

 

相关文章:

  • 2021-12-24
  • 2022-12-23
  • 2021-09-20
  • 2021-07-18
  • 2021-09-30
  • 2021-05-16
  • 2021-04-19
  • 2021-05-20
猜你喜欢
  • 2021-05-27
  • 2021-11-25
  • 2021-11-29
  • 2022-03-03
  • 2021-06-25
  • 2021-12-10
  • 2022-12-23
相关资源
相似解决方案