找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9033|回復(fù): 0
收起左側(cè)

搞定stm32f10x_type.h(23): error: #256: invalid redecla Keil報(bào)錯(cuò)

[復(fù)制鏈接]
ID:86860 發(fā)表于 2015-7-26 00:27 | 顯示全部樓層 |閱讀模式
Keil報(bào)錯(cuò):d:\Keil  MDK4\ARM\INC\ST\STM32F10x\stm32f10x_type.h(23): error:  #256: invalid redecla

使用Keil4 MDK V4.10  
固件庫(kù)V3.5
按照教程建模板是發(fā)現(xiàn)編譯出現(xiàn)一大推這樣的錯(cuò)誤:d:\Keil MDK4\ARM\INC\ST\STM32F10x\stm32f10x_type.h(23):error:  #256: invalid redecla等等

經(jīng)過(guò)不斷搜索網(wǎng)絡(luò)資源以及找尋錯(cuò)誤原因,發(fā)現(xiàn)這樣錯(cuò)誤的原因是:自己新建的工程文件里的函數(shù)如

和原本安裝目錄里的函數(shù)定義沖突了:

原本工程執(zhí)行的過(guò)程是不需要去訪問(wèn)安裝目錄里的函數(shù)的,因?yàn)槲覀冃陆ǖ墓こ桃呀?jīng)將需要的固件庫(kù)都添加到我們的工程目錄里面了:







但是為什么編譯的時(shí)候又會(huì)跑去調(diào)用安裝目錄下的函數(shù)呢?那是因?yàn)槲覀儧](méi)有把includepath路徑設(shè)置好,我們必須把我們工程目錄下的幾個(gè)目錄包含進(jìn)去:



包含進(jìn)去之后看看Compiler control string這里發(fā)現(xiàn)我們包含的路徑都在“D:\Keil MDK4\ARM\INC\ST\STM32F10x”安裝目錄的路徑之前,說(shuō)明編譯的時(shí)候編譯器是現(xiàn)在我們包含的工程路徑里去找函數(shù)的,如果找到了就不會(huì)繼續(xù)往下找,找不到就會(huì)跑到安裝目錄也就是默認(rèn)的路徑去找,這樣就會(huì)造成重復(fù)包含和重定義了。

如果屢次遇到這樣問(wèn)題的一定是includepath這里設(shè)置錯(cuò)了的,一定仔細(xì)檢查,看看路徑名有沒(méi)有寫(xiě)錯(cuò),這是一點(diǎn)小小經(jīng)驗(yàn)之談,寫(xiě)出來(lái)給大家分享則個(gè)。

如有說(shuō)錯(cuò),歡迎指正。如有新解,歡迎指教!
謝謝。!



回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表