目录
- 前言
- 1、宏有定义,但goto查找不到
- 2、IAR的 Go to Definition of不能用
- 3、编译找不到文件(.c/.h)
- 1、情况一:Fatal Error[Pe1696]: cannot open source file "api_config.h" Error while running C/C++ Compiler
- 2、情况二:Fatal Error[Lc002]: could not open file "F:\HighAD_ChangeVersion\Projects_V2\High_ARM\HighBoard_testmode\Project\stm32f10x_flash.icf" C:\Users\26058\AppData\Local\Temp\EWAEFE.tmp 1 Error while running Linker
- 3、情况三:Error[Li005]: no definition for "__iar_system_Mtxinit" [referenced from xsyslock_mtx.o(th7M_tlf.a)]
前言
本篇文章主要是记录一些IAR编译器使用方法和问题,主要是一些网络上比较难找到的问题。
由于换了一家公司,有因为keil版权问题,现在的这家公司不允许使用了,刚开始是真的不习惯,用的真难受啊,越使用心里越是万马奔腾。
keil啊!想不到我换了个工作,失去的不只有老板的大饼,其中还有你啊。
为了饭碗还是忍一忍先,keil我知道你会理解我滴
1、宏有定义,但goto查找不到
IAR提示“xxxx” defined on the command line
在使用IAR时遇到一个奇怪问题,有些宏全局搜索不到,但在调试时发现程序却是会执行里面的代码,很纳闷,goto查看定义的时候又发现以真实没定义的宏还是有区别的,他提示
IAR提示“xxxx” defined on the command line
后面查找资料在一个网络大佬的回答中发现了原因所在:
原因是该宏被定义在“Defined symbols"这个地方了,比如该宏为ICALL_MAX_NUM_TASKS
2、IAR的 Go to Definition of不能用
解决方法:
1、tool - opion - project-Generate那个选项勾上确定再试,如果是已勾选则先取消确认在勾选确认
2、如果还是不行,可以试试 project - clean,然后重新编译一次,应该可以跳转。
当然还是有可能会出现不能用,此时只能全局搜索了(ctr+shift+f),但我发现这样操作过一段时间后又可以了;果然IAR还是垃圾。
3、编译找不到文件(.c/.h)
这个报错记录的原文在 https://blog.youkuaiyun.com/qq_57320111/article/details/128467258
1、情况一:Fatal Error[Pe1696]: cannot open source file “api_config.h” Error while running C/C++ Compiler
解决方法:
1、找到对应文件所在位置
2、右键工程,点击Options
3、点击图中“click to add”,添加对应的文件路径即可。
2、情况二:Fatal Error[Lc002]: could not open file “F:\HighAD_ChangeVersion\Projects_V2\High_ARM\HighBoard_testmode\Project\stm32f10x_flash.icf” C:\Users\26058\AppData\Local\Temp\EWAEFE.tmp 1 Error while running Linker
解决方法:
1、出现这个问题说明此工程是别人的工程复制到自己电脑上的,只需要 将下图中红框路径修改为自己电脑中工程保存所在的正确的路径即可解决问题。
3、情况三:Error[Li005]: no definition for “__iar_system_Mtxinit” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error[Li005]: no definition for “__iar_file_Mtxinit” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error[Li005]: no definition for “__iar_file_Mtxdst” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error[Li005]: no definition for “__iar_system_Mtxdst” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error[Li005]: no definition for “__iar_file_Mtxunlock” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error[Li005]: no definition for “__iar_system_Mtxunlock” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error[Li005]: no definition for “__iar_system_Mtxlock” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error[Li005]: no definition for “__iar_file_Mtxlock” [referenced from xsyslock_mtx.o(th7M_tlf.a)]
Error while running Linker
解决方法:
把下图中的勾取下即可
时间记录:20230621