编译错误疑难杂症总结

问题:Undefined reference to "sleep(unsigned int)"   --sleep是系统库函数

原因:在自己编写代码的头文件里面声明了extern int sleep(int)导致,应该由包含的"unistd.h”自动适配
方法:去掉自己加的extern int sleep(int)声明,使用头文件"unistd.h”

 

问题:Error 97 error LNK2019: unresolved external symbol "int __cdecl ClearSesr(unsigned char)" (?ClearSesr@@YAHE@Z) referenced in function _RIClearSesr D:\winshare\cs\RI\source\sim\vs\build\build\risysfn.obj build  

         ClearSesr 这个函数经检查确实放到同一工程里面并且编译到了。
原因:工程里面有连个同名的源码文件,分别放在不同的目录,而编译输出的目录只有一个,结果其中一个文件的.obj覆盖了另一个文件生成的.obj,导致被覆盖的文件的符号链接不到。

方法:把同名文件改成不一样的文件。

 

问题:

出现大量库函数重复定义

Error 121 error LNK2005: _getwchar already defined in parserif.obj D:\winshare\cs\RI\source\sim\vs\build\build\events.obj build
Error 132 error LNK2005: _getwchar already defined in parserif.obj D:\winshare\cs\RI\source\sim\vs\build\build\format.obj build
Error 143 error LNK2005: _getwchar already defined in parserif.obj D:\winshare\cs\RI\source\sim\vs\build\build\memMgmt.obj build
Error 145 error LNK2005: _getwchar already defined in parserif.obj D:\winshare\cs\RI\source\sim\vs\build\build\mepe.obj build
Error 147 error LNK2005: _getwchar already defined in parserif.obj D:\winshare\cs\RI\source\sim\vs\build\build\output.obj build

原因:在自己的头文件里面把inline 定位为空了,导致系统"math.h"中的内联函数被重复定义

方法:去掉#define inline

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值