問(wèn)題背景:
????????今天在給stm32f407vgt6點(diǎn)燈時(shí),想實(shí)現(xiàn)循環(huán)閃爍,于是想從以前的工程中移植一個(gè)delay延時(shí)函數(shù),移植后編譯時(shí)發(fā)現(xiàn)出現(xiàn)錯(cuò)誤:
Error: L6218E: Undefined symbol Delay(unsigned) (referred from main.o).的解決方法
解決過(guò)程的思考:?
????????在確定了頭文件Include路徑的包含和.c文件的添加后,想起之前用C++實(shí)現(xiàn)STM32F103C8T6串口字符輸出看過(guò)的一篇文章,文中提到一個(gè)工程中含有.cpp文件和.c文件混合實(shí)現(xiàn)時(shí),在文件類型是C++的main.cpp下 所有用C語(yǔ)言實(shí)現(xiàn)的模塊,添加.h時(shí)要加上
extern "C"
{
? ? ? ? #include"xxx.h"? ? ? ? ? ? ? ? //xxx代表文件名?,根據(jù)實(shí)際修改? ? ? ? ? ? ? ?
}
且文章的作者多次強(qiáng)調(diào)extern"C"
解決方法:
????????原來(lái)包含的頭文件如下,此處delay.c是用C語(yǔ)言實(shí)現(xiàn),這種情況下會(huì)出現(xiàn)標(biāo)題中的錯(cuò)誤:
?需要修改為如下:
?
再次編譯,完美解決。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-519609.html
總結(jié):
? ? ? ? 在C++工程中想加入C語(yǔ)言實(shí)現(xiàn)的模塊,在包含頭文件時(shí),需添加extern"C"{ xxx.h?}。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-519609.html
到了這里,關(guān)于Keil 5下出現(xiàn)Error: L6218E: Undefined symbol Delay(unsigned) (referred from main.o).的解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!