Keil 生成的 object 文件名有額外的後綴 _1, _2 ... 。
工程中存在兩個及以上的同名文件。
這是因為在 keil MDK 5.12 之後引入允許多個同名文件存在的機制,編譯為 object 文件時會在文件名自動添加後綴 _1, _2 ... 。可能因為引入開源項目出現同名文件的情況很多。
在 keil MDK 5.30 之後編譯時會輸出相關的重命名警告,類似如下
註:僅是同名文件,內容標簽不壹樣,兩者表象不壹樣,不然是編譯錯誤: 重定義 。
若僅從工程中剔除多余的同名文件,還是會重命名。
對於 keil 的引入的這個機制,筆者曾碰到過莫名奇妙的問題,問題過於玄學不好描述,下次再碰到再研究壹番。盡量壹開始就避免導入多個同名文件。