make: *** [package/mac80211/compile] OpenWRT 错误 1
make: *** [package/mac80211/compile] Error 1 in OpenWRT
我编译了我的 SDK 几次,每次编译时我的结果都是一样的 make V=99
,以下是出现的错误:
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
第一个错误的答案可以在这里找到:Why this "Implicit declaration of function 'X'"?
对于问题的另一部分("I compiled my SDK several times and always I have the same result when I did make V = 99" 和 make[1][2][3] 错误)你应该记住,如果在包的交叉编译过程中你得到一个错误,您首先需要(显然)消除源代码中的错误(在您的情况下为 main.c),并且(重要!)转到 /home/rik/client/openwrt/dl 并删除 [name_of_your_package]。 tar.gz。由于某种原因,工具链只获取源文件 ([name_of_your_package].tar.gz) 一次,如果您 运行 make package/[name]/ 则不会覆盖它编译 V=99 即使你改变了你的源代码。 IE。您需要手动删除该文件。你得到这些错误是因为工具链总是试图编译你写的第一个源代码,当然结果总是一样的。
简单的说,交叉编译步骤如下:
- 运行 make menuconfig 并选择所需的包
- 运行 制作包/[名称]/编译
- 如果(!)您遇到编译错误,请从 /home/rik/client/openwrt/dl 中删除 [name_of_your_package].tar.gz
- 更正源代码并从步骤 1 开始重复。
也就是说,每次 gcc 报错时,您首先需要删除工具链获取的源代码,然后再尝试编译。
我编译了我的 SDK 几次,每次编译时我的结果都是一样的 make V=99
,以下是出现的错误:
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
第一个错误的答案可以在这里找到:Why this "Implicit declaration of function 'X'"?
对于问题的另一部分("I compiled my SDK several times and always I have the same result when I did make V = 99" 和 make[1][2][3] 错误)你应该记住,如果在包的交叉编译过程中你得到一个错误,您首先需要(显然)消除源代码中的错误(在您的情况下为 main.c),并且(重要!)转到 /home/rik/client/openwrt/dl 并删除 [name_of_your_package]。 tar.gz。由于某种原因,工具链只获取源文件 ([name_of_your_package].tar.gz) 一次,如果您 运行 make package/[name]/ 则不会覆盖它编译 V=99 即使你改变了你的源代码。 IE。您需要手动删除该文件。你得到这些错误是因为工具链总是试图编译你写的第一个源代码,当然结果总是一样的。
简单的说,交叉编译步骤如下:
- 运行 make menuconfig 并选择所需的包
- 运行 制作包/[名称]/编译
- 如果(!)您遇到编译错误,请从 /home/rik/client/openwrt/dl 中删除 [name_of_your_package].tar.gz
- 更正源代码并从步骤 1 开始重复。
也就是说,每次 gcc 报错时,您首先需要删除工具链获取的源代码,然后再尝试编译。