2015-04-06 123 views
0

我編譯SDK幾次,我總是有當我做make V=99相同的結果,這裏是出現了錯誤:化妝:在的OpenWRT *** [包/ mac80211 /編譯]錯誤1

build_dir/linux-brcm47xx/compat-wireless-2011-05-27/drivers/net/wireless/b43/main.c:4240:3: error: implicit declaration of function 'ssb_commit_settings' 
make[8]: *** [/home/rik/client/openwrt/build_dir/linux-brcm47xx/compat-wireless-2011-05-27/drivers/net/wireless/b43/main.o] Error 1 

make[3]: Leaving directory `/home/rik/client/openwrt/package/mac80211' 
make[2]: *** [package/mac80211/compile] Error 2 
make[2]: Leaving directory `/home/rik/client/openwrt' 
make[1]: *** [/home/rik/client/openwrt/staging_dir/target-mipsel_uClibc-0.9.32/stamp/.package_compile] Error 2 

回答

1

第一個錯誤的答案可以在這裏找到:Why this "Implicit declaration of function 'X'"?

對於問題的其他部分(「我編譯我的SDK多次,總是我有相同的結果,當我做了V = 99」,並使[ 1] [2] [3]錯誤),你應該記住,如果在包的交叉編譯過程中出現錯誤,你首先需要(顯然)擺脫你的錯誤urce代碼(main.c在你的情況下)和(重要的!)去/ home/rik/client/openwrt/dl並刪除[name_of_your_package] .tar.gz。由於某些原因,工具鏈僅獲取一次源文件([name_of_your_package] .tar.gz),並且即使在更改源代碼後運行make package/[name]/compile V = 99也不會覆蓋它。即您需要手動刪除該文件。你有這些錯誤是因爲工具鏈總是試圖編譯你寫的第一個源代碼,當然結果總是一樣的。

簡單地說,交叉編譯步驟如下:

  1. 運行的make menuconfig,然後選擇所需的包
  2. 運行化妝包/ [名] /編譯
  3. 如果(!)您收到編譯錯誤,請刪除[name_of_your_package] .tar.gz from /home/rik/client/openwrt/dl
  4. 糾正的源代碼,並從步驟1

也就是說重複,每一次海灣合作委員會提出了一個錯誤,你首先需要嘗試重新編譯之前刪除的工具鏈獲取的來源。