IAR编译错误,Error[Li005]: no definition for "__iar_system_Mtxlock" 30

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)]
有谁碰到过这个情况,
展开
 我来答
执掌玩转
2015-04-10 · 情感讨论解析疏导解惑
执掌玩转
采纳数:3 获赞数:26

向TA提问 私信TA
展开全部

如果你 没用到 下面这个的话    就把 沟去掉    然后就好了       前提是没用到

百度网友e8b1cd8
2018-03-31 · TA获得超过5270个赞
知道小有建树答主
回答量:34
采纳率:96%
帮助的人:9601
展开全部
  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库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
warmonkey
2016-12-19 · TA获得超过132个赞
知道答主
回答量:68
采纳率:0%
帮助的人:35万
展开全部
其他几个回答都是胡扯的。
http://supp.iar.com/FilesPublic/UPDINFO/005691/arm/doc/infocenter/DLIBThreadSupport.html
看IAR官方文档,这是因为你启用了c/c++标准库的多线程支持。(Enable thread support in library)
既然有多线程支持,那就有上锁和解锁的问题了,你需要自己实现以下函数,让iar知道怎么调用你的系统中的锁功能(mutex)

void __iar_system_Mtxinit(__iar_Rmtx *); // Initialize a system lock

void __iar_system_Mtxdst(__iar_Rmtx *); // Destroy a system lock

void __iar_system_Mtxlock(__iar_Rmtx *); // Lock a system lock

void __iar_system_Mtxunlock(__iar_Rmtx *); // Unlock a system lock

----------------------

void __iar_file_Mtxinit(__iar_Rmtx *); // Initialize a file lock

void __iar_file_Mtxdst(__iar_Rmtx *); // Destroy a file lock

void __iar_file_Mtxlock(__iar_Rmtx *); // Lock a file lock

void __iar_file_Mtxunlock(__iar_Rmtx *); // Unlock a file lock
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
控制自己AR
2015-03-29
知道答主
回答量:3
采纳率:0%
帮助的人:3718
展开全部
很明显,未定义,xsyslock_mtx.c中未定义这些
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
查晓筠0i5
2015-03-13 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4951万
展开全部
关注这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式