2015-04-06 39 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

也就是说重复,每一次海湾合作委员会提出了一个错误,你首先需要尝试重新编译之前删除的工具链获取的来源。