① IAR編譯錯誤,請高手給看看是怎麼回事
這是說明你的代碼量超出了你預設的rom大小,一般iar編譯程序後會根據一個
xxx.xcl文件把你的代碼和數據鏈接到指定地址,iar的文件夾裡面搜搜就能搜到,"-z(code)code=romstart-romend"是說你所有的代碼都放置在以romstart為起始地址,romend為終止地址的一段連續的空間內,romstart為0x4000016c,romend為40003fff,貌似是個有16k
flash的arm。上面報錯是因為你編譯出來的code
size
是0x58b4,已經超過了這個空間,你能做的就是看看能不能縮減代碼量。
② 求助!在IAR環境下編譯程序時總是編譯不對!
看看是不是開了另外一個窗口在debugging,如果有的話點擊stop debugging(紅色按鈕)
就好了
③ IAR 里 程序編譯錯誤: Error[Lp011]: section placement failed: 怎麼回事啊 這是
該錯誤提示內存不足。最大牌的做法是換MCU或則增加外部內存,其次軟體上,將一些不變的數組前加const關鍵字,將其存放於flash中,還有盡量減少使用全局變數、數組、結構體等。
④ iar軟體里cannot open source file "common.h",跟著野火k60教程學習,配置完編譯就一堆錯,都是這種
這是編譯器報錯提示「找不到common.h的頭文件」,這種情況一般是你的commonl.h的頭文件不在IAR默認的include PATH路徑中,解決很簡單,你只需要給編譯器的include PATH 添加一下你的這些自定義頭文件路徑就可以了。IAR沒用過,不過主流的編譯器include路徑配置一般都在工程的選項配置菜單中,你仔細找找好了。
注意: 工程文件的路徑中 不要包含漢字等內容(採用全英文路徑是個好的軟體工程管理習慣),以免編譯器不識別。
⑤ IAR編譯錯誤,Error[Li005]: no definition for "__iar_system_Mtxlock"
如果你 沒用到 下面這個的話 就把 溝去掉 然後就好了 前提是沒用到
⑥ 哪位大哥用過IAR,編譯出現錯誤了,沒法解決,幫幫忙,謝謝!
這個問題我也遇到了,是debug文件夾中有損壞的文件,重新替換到就好了
⑦ 如何解決IAR編譯錯誤,Error[Li005]: no definition for
在uart.h中定義了一個結構體類型。
struct SERIREC{
unsigned charflag;
unsigned charCrc8_Code;
unsignedCrc16_Code;
unsigned charusedmes[7];
unsigned chari;
};
extern struct SERIREC PC ; //然後再這里聲明它。
在uart.c中定義PC這個結構體的實體。。
struct SERIREC PC ; // 不定義這個,就會報 no definition
編譯鏈接錯誤(語法錯誤):編譯鏈接錯誤又分成編譯錯和鏈接錯。
編譯錯就是普通意義上的語法錯,編譯器進行語法檢查不通過,也就是程序違背了計算機語言的語法,例如:括弧不匹配、變數名拼寫錯誤、用保留字定義變數名等;
鏈接錯是指程序通過了語法檢查,但是無法生成可執行文件,最常見的是鏈接找不到lib庫。初學者有時寫了函數的聲明,但是缺少函數的定義,此時就會出現鏈接錯。
⑧ IAR中添加了STM8庫函數 怎麼報這么多錯啊
首先include頭文件,不需要把文件 放到工程中,通常需要使用函數文件的時候,把.c文件放到工程里。只需要把頭文件夾路徑在IAR中 配置下就可以啦。。你把.h文件在工程中去掉,路徑包含下,看看行不行。
還有,我通常那個包含的都是stm8s.h這個文件,在庫中有的,你這個我沒包含過。
⑨ iar for stm8 自帶庫,怎麼編譯出錯
iar for stm8 自帶庫,解決出錯問題:
Option -> c/c++ compiler -> Preprocessor -> defined symbols