編譯make的出錯提示解決方案

2021-09-07 13:52:17 字數 2543 閱讀 3357

編譯出錯筆記:

start.s:20: error: no such instruction: `ldr r0,=wtcon'

錯誤:沒有這樣的指令

解決:編譯檔案字尾名必須為大寫s,改為start.s

start.s:34: error: bad instruction `ldr,r0,=0x4c000004'

錯誤:壞的指令,指令名ldr後面不能跟逗號

解決:改為ldr r0,=0x4c000004

start.s:52: error: bad expression -- `ldr r0,#0'

錯誤:指令引數出錯,使用#0引數是使用mov,不是ldr

解決:改為mov r0,#0

start.o(.text+0xc8): in function `sdram_config': : undefined reference to `lr'

錯誤:在start.s中對lr未定義的引用

解決:在start.s中找到 ldr pc,=lr ,編譯器誤解lr是乙個變數,這裡應該寫成mov pc,lr(完成乙個子程式返回)

12: error: syntax error before "int"

錯誤:'int'符號之前有語法錯誤

13: warning: comparison of distinct pointer types lacks a cast

錯誤:指標與其它不同型別的值比較,沒有使用強制轉換

解決:使用強制轉換使兩個變數改為相同型別

comparison: 比較

distinct pointer types: 不同的型別指標

a cast:強制轉換

19: warning: conflicting types for built-in function 'strcpy'

錯誤:strcpy函式與內建函式庫衝突,(比如:printf,strlen,puts,scanf等都是內建函式庫)

解決:  1.在arm-linux-gcc編譯命令後面加上-fno-builtin或者-fno-builtin-function 選項,你就可以自己實現這些函式而不衝突了。

2.把這些函式改個名稱,以便不衝突。

11: error: `str' undeclared (first use in this function)

錯誤:str變數沒有宣告定義

1: error: syntax error before "include"

錯誤:在「include」標號之前有語法錯誤

74: warning: return type of 'main' is not `int'

錯誤:main函式的返回值不是int型

解決:將void main(void){} 改為int main(void)

78: warning: implicit declaration of function `uart0_init'

錯誤:74行中用到的uart0_init函式只是**宣告(implicit declaration),在這個檔案中沒有extern宣告或者呼叫標頭檔案

解決:1.在本文開頭上新增: extern void uart0_init(void);

2.新增該函式的標頭檔案,例如: #include "serial.h"

arm-linux-ld:uboot.lds:2: parse error

錯誤:uboot.lds檔案中第2行語句解析(parse )錯誤.

解決:

1.lds鏈結指令碼中每個符號(:或者=)左右都要加上空格 , 或tab按鍵 ,不然就會出錯,例如以下**:

. = align(4); 

.rodata: //這裡:左右沒有空格,將出錯,改為 .rodata :

2.lds鏈結指令碼中除了"{}和()"後都不能加";"逗號,例如以下**

.rodata : ; //這裡"}"後面加了";"逗號,將出錯

3.lds指令碼sections中若是以當前位址.等於***時,.後面都要加空格,例如以下**:

.= 0x33f80000; //當前0位址裡賦入0x33f80000,這裡.後面沒有加空格,將出錯,改為	

. = 0x33f80000;

. = align(4);

4.lds指令碼中定義符號時,都要使符號在前,例如以下**:

__bss_start = .; 

.bss :

. = __bss_end; //這裡定義"__bss_end"符號出錯,應該改為 __bss_end = .;

XMLHTTP 出錯解決方案

我們在使用xmlhttp的時候,有的時候可能不穩定,不正常.即原本正常的程式突然會出現xmlhttp錯誤,錯誤提示大概意思就是msxml3.dll怎樣的.以前個人百思不得其解,而且網上各種各樣的解釋都無法行得通.前些日子,我必須解決這個問題,嘗試採取如下方法,既然ok了.方法 在程式執行所在伺服器上...

import librosa出錯解決方案

多次嘗試安裝librosa庫後發現import librosa依然出問題,嘗試最簡單的問題解決方法,安裝時更換版本號 注意如果有pip版本相關錯根據錯誤提示誤公升級pip即可 python m pip install librosa 0.6.0再重新導包 再或者卸除所有已有的librosa再重新安裝...

vs 編譯 錯誤提示 解決方案

首先必須搞清楚專案 專案屬性 配置屬性 c c 生成 執行庫中四個選項的關係 多執行緒除錯dll mdd 對應 md dynamicdebug 多執行緒dll md 對應 md dynamicrelease 多執行緒 mt 對應 md staticrelease 多執行緒 mtd 對應 md sta...