一、编译BuildRoot问题
1.1、提示没有install python
/home/workspace/BuildSpace/Debian$ make
umask 0022 && make -C /home/workspace/BuildSpace/Debian/buildroot O=/home/workspace/BuildSpace/Debian/buildroot/output/rockchip_rk3399_tinkerboard2
grep: /home/workspace/BuildSpace/Debian/buildroot/../kernel/.config: 没有那个文件或目录
You must install 'python' on your build machine
make[1]: *** [support/dependencies/dependencies.mk:25:core-dependencies] Error 1
make: *** [/home/workspace/BuildSpace/Debian/buildroot/output/rockchip_rk3399_tinkerboard2/Makefile:16:_all] Error 2
解决措施:查看/usr/bin/路径是有python3的,而此次编译需要python,直接设置软连接就行
/home/workspace/BuildSpace/Debian$ sudo ln -s /usr/bin/python3 /usr/bin/python
1.2、c-stack.c:55:26: error: missing binary operator before token
In file included from /usr/include/signal.h:328,
from ./signal.h:52,
from c-stack.c:49:
c-stack.c:55:26: error: missing binary operator before token "("
55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
| ^~~~~~~~
CC exitfail.o
CC fatal-signal.o
CC fd-hook.o
CC fd-safer-flag.o
make[5]: *** [Makefile:1915: c-stack.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [Makefile:1674: all] Error 2
make[3]: *** [Makefile:1572: all-recursive] Error 1
make[2]: *** [Makefile:1528:all] 错误 2
make[1]: *** [package/pkg-generic.mk:231:/home/workspace/BuildSpace/Debian/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-m4-1.4.18/.stamp_built] 错误 2
make: *** [/home/workspace/BuildSpace/Debian/buildroot/output/rockchip_rk3399_tinkerboard2/Makefile:16:_all] 错误 2
版本问题,新版本已经废弃“SIGSTKSZ”
考虑更换host-m4的版本,或者编译系统的版本
更换host-m4的版本:host-m4-1.4.18->host-m4-1.4.19
下载地址:
https://git.busybox.net/buildroot/
替换hash,mk文件即可:mkdir tmp
cd tmp
wget https://buildroot.org/downloads/buildroot-2023.02.4.tar.gz
tar -xf buildroot-2023.02.4.tar.gz
rm -rf ../buildroot/package/m4/
cp -rf buildroot-2023.02.4/package/m4/ ../buildroot/package/cd -
1.3、meson-0.54.2.tar.gz资源找不到
无法建立 SSL 连接。
--2024-01-07 09:39:37-- http://sources.buildroot.net/meson-0.54.2.tar.gz
正在解析主机 sources.buildroot.net (sources.buildroot.net)... 2606:4700:20::681a:25, 2606:4700:20::681a:125, 2606:4700:20::ac43:4838, ...
正在连接 sources.buildroot.net (sources.buildroot.net)|2606:4700:20::681a:25|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 404 Not Found
2024-01-07 09:39:37 错误 404:Not Found。
make[1]: *** [package/pkg-generic.mk:140:/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-meson-0.54.2/.stamp_downloaded] 错误 1
make: *** [/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/Makefile:16:_all] 错误 2
路径错了,可以直接修改buildroot/package/meson/meson.mk
解决方法:可以在Windows下,用 百度网盘或者迅雷 直接访问这个网站下载,将下载的文件放到虚拟机rk sdk的buildroot/dl目录下,然后重新编译
1.4、error: ‘numeric_limits’ is not a member of ‘std’
/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx: In member function ‘std::size_t std::hash<LanguageData>::operator()(const LanguageData&) const’:
/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:620:43: error: ‘numeric_limits’ is not a member of ‘std’
620 | (i.second ? std::numeric_limits<size_t>::max() : 0));
| ^~~~~~~~~~~~~~
/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:620:64: error: expected primary-expression before ‘>’ token
620 | (i.second ? std::numeric_limits<size_t>::max() : 0));
| ^
/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:620:67: error: ‘::max’ has not been declared; did you mean ‘std::max’?
620 | (i.second ? std::numeric_limits<size_t>::max() : 0));
| ^~~
| std::max
In file included from /usr/include/c++/11/algorithm:62,
from /home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmLinkItem.h:8,
from /home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmGeneratorTarget.h:8,
from /home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:7:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
3467 | max(initializer_list<_Tp> __l, _Compare __comp)
| ^~~
/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:626:39: error: ‘numeric_limits’ is not a member of ‘std’
626 | result ^ (in.IsGenerated ? std::numeric_limits<size_t>::max() : 0);
| ^~~~~~~~~~~~~~
/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:626:60: error: expected primary-expression before ‘>’ token
626 | result ^ (in.IsGenerated ? std::numeric_limits<size_t>::max() : 0);
| ^
/home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:626:63: error: ‘::max’ has not been declared; did you mean ‘std::max’?
626 | result ^ (in.IsGenerated ? std::numeric_limits<size_t>::max() : 0);
| ^~~
| std::max
In file included from /usr/include/c++/11/algorithm:62,
from /home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmLinkItem.h:8,
from /home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmGeneratorTarget.h:8,
from /home/workspace/BuildSpace/Linux/buildroot/output/rockchip_rk3399_tinkerboard2/build/host-cmake-3.8.2/Source/cmServerProtocol.cxx:7:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
3467 | max(initializer_list<_Tp> __l, _Compare __comp)
| ^~~
[ 93%] Building CXX object Source/CMakeFiles/CPackLib.dir/CPack/cmCPackTXZGenerator.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseMumpsCoverage.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseCacheCoverage.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CPackLib.dir/CPack/cmCPackTarBZip2Generator.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseGTMCoverage.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CPackLib.dir/CPack/cmCPackTarCompressGenerator.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CPackLib.dir/CPack/cmCPackZIPGenerator.cxx.o
make[4]: *** [Source/CMakeFiles/CMakeServerLib.dir/build.make:135:Source/CMakeFiles/CMakeServerLib.dir/cmServerProtocol.cxx.o] 错误 1
make[3]: *** [CMakeFiles/Makefile2:2113:Source/CMakeFiles/CMakeServerLib.dir/all] 错误 2
make[3]: *** 正在等待未完成的任务....
[ 93%] Building CXX object Source/CMakeFiles/CPackLib.dir/CPack/cmCPack7zGenerator.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CPackLib.dir/CPack/cmCPackDebGenerator.cxx.o
[ 93%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseJacocoCoverage.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseBlanketJSCoverage.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CPackLib.dir/CPack/cmCPackRPMGenerator.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParsePHPCoverage.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseCoberturaCoverage.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseDelphiCoverage.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestGenericHandler.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestLaunch.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestHandlerCommand.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestMemCheckCommand.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestMemCheckHandler.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestMultiProcessHandler.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestReadCustomFilesCommand.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestRunScriptCommand.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestRunTest.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestScriptHandler.cxx.o
[ 95%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestSleepCommand.cxx.o
[ 96%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestStartCommand.cxx.o
[ 96%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestSubmitComm