如何解决IAR编译错误,Error[Li005]: no definition for

Error[Li005]:nodefinitionfor"__iar_system_Mtxlock"[referencedfromxsyslock_mtx.o(dl7M_... Error[Li005]: no definition for "__iar_system_Mtxlock" [referenced from xsyslock_mtx.o(dl7M_tlf.a)]
Error[Li005]: no definition for "__iar_file_Mtxinit" [referenced from xsyslock_mtx.o(dl7M_tlf.a)]
Error[Li005]: no definition for "__iar_system_Mtxinit" [referenced from xsyslock_mtx.o(dl7M_tlf.a)]
Error[Li005]: no definition for "__iar_file_Mtxdst" [referenced from xsyslock_mtx.o(dl7M_tlf.a)]
Error[Li005]: no definition for "__iar_system_Mtxdst" [referenced from xsyslock_mtx.o(dl7M_tlf.a)]
Error[Li005]: no definition for "__iar_system_Mtxunlock" [referenced from xsyslock_mtx.o(dl7M_tlf.a)]
有谁碰到过这个情况,
展开
 我来答
百度网友e8b1cd8
推荐于2019-09-29 · TA获得超过5270个赞
知道小有建树答主
回答量:34
采纳率:96%
帮助的人:9600
展开全部
  1. 在uart.h中定义了一个结构体类型。

  2. struct SERIREC{
    unsigned char flag;
    unsigned char Crc8_Code;
    unsigned Crc16_Code;
    unsigned char usedmes[7];
    unsigned char i;
    }; 

  3. extern struct SERIREC PC  ; //然后再这里声明它。

  4. 在uart.c中定义PC这个结构体的实体。。

  5. struct SERIREC PC ; // 不定义这个,就会报 no definition

  6. 编译链接错误(语法错误):编译链接错误又分成编译错和链接错。

  7. 编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;

  8. 链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。

拱禄帘劫段bYcda
2019-12-24
知道答主
回答量:2
采纳率:0%
帮助的人:1029
展开全部
我的也出现了这个问题,我的原因是因为没有添加.c文件。只添加了它头文件。例如:我调用了库本身的exti_init()函数。但是我的工程里没有添加exti.c。只添加了.h的路径。再添加上.c就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式