IAR 連接源文件時(shí)出現(xiàn)duplicate definitions錯(cuò)誤
發(fā)布時(shí)間:2018-04-03 瀏覽量:
Duplicate definitions從字面上看就是重復(fù)定義的意思。
那么,為什么會(huì)出現(xiàn)這個(gè)問題呢?原因就是多個(gè)文件定義全局變量的時(shí)候一個(gè)變量的定義間接地出現(xiàn)在了多個(gè)地方。
下面詳細(xì)說一下出現(xiàn)錯(cuò)誤的原因吧!
我在下面的頭文件中定義了一個(gè)全局變量flag.
然后我把它包含在主文件中:
這樣,flag在文件stm32f4xx_it.h中定義了一次,然后被main.c包含進(jìn)來,又被定義了一次,所以就出現(xiàn)錯(cuò)誤。
下面說說怎么解決這個(gè)錯(cuò)誤吧!
首先,要知道的是全局變量的定義要放在.c文件里而不是.h(頭文件)中。同時(shí)刪除頭文件中變量的定義。
同時(shí)在.h(頭文件)中說明變量一下為extern,不然編譯的時(shí)候會(huì)出現(xiàn)未定義錯(cuò)誤。(注意:這里說明變量的時(shí)候不能再給他賦值,會(huì)出錯(cuò)。)
這樣,錯(cuò)誤就化解了。希望能幫到大家。