Linker 错误L6218E未定义符号_asm(参考main.o)

Linker 错误L6218E未定义符号_asm(参考main.o),linker,keil,stm32f4,Linker,Keil,Stm32f4,我面临一个链接器错误。我在KeilµVision5中编写了以下内联汇编代码 _asm("NOP"); _asm("NOP"); 我得到了以下错误: \RAM\STM32F439\u Template.axf:错误:L6218E:未定义符号\u asm(从main.o引用)。 我在程序中包含了头文件“stm325439xx.h” 有人能帮我纠正这个错误吗?谢谢。要使此代码正常工作,您需要包含定义宏的头,或者如果它内置于某些编译器中,则在项目设置中选择正确的

我面临一个链接器错误。我在KeilµVision5中编写了以下内联汇编代码

_asm("NOP");
_asm("NOP");
我得到了以下错误:
\RAM\STM32F439\u Template.axf:错误:L6218E:未定义符号\u asm(从main.o引用)。

我在程序中包含了头文件“stm325439xx.h”


有人能帮我纠正这个错误吗?谢谢。

要使此代码正常工作,您需要包含定义宏的头,或者如果它内置于某些编译器中,则在项目设置中选择正确的编译器(Keil工具支持多个不同的编译器)


但是,可移植的解决方案是不使用此代码,而是包括
“stm32f4xx.h”
,然后使用
\uu NOP()
,这对于许多编译器都是正确的。

谢谢您的回答。我刚刚修复了这个错误,在字母“asm”之前添加了两个连续的下划线“ux”,而不是一个”。“_asm”(带有两个连续的下划线)是正确的符号,而“_asm”(只有一个下划线)是未定义的符号。在这个问题中,我使用了错误的符号,只有一个下划线“\u asm”。这就是我出错的原因。