make 与 ./build.sh buildroot有什么区别
时间: 2024-04-28 10:22:33 浏览: 108
`make` 是一个常用的 Linux 命令,用于编译程序源代码,将其转换成可执行文件。在 buildroot 中,`make` 命令用于编译整个系统,包括内核、文件系统和交叉编译工具链等,是一个比较底层的编译命令。
而 `./build.sh buildroot` 是 buildroot 提供的一个脚本,用于执行 buildroot 的编译过程,并在编译完成后生成完整的固件镜像。这个脚本会自动执行 `make` 命令,并且在执行过程中会做一些配置和检查工作,相对于 `make` 命令来说更加高级和方便。
总的来说,`make` 命令更加底层,需要手动配置和编译,而 `./build.sh buildroot` 命令则更加高级和方便,适合快速构建整个系统。
相关问题
cmy@ubuntu:~/x6818/build$ sudo ./build_root.sh /usr/bin/make -j1 O=/home/cmy/x6818/build/buildroot-2023.02.1/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" syncconfig make[1]: 进入目录“/home/cmy/x6818/build/buildroot-2023.02.1” make[1]: 离开目录“/home/cmy/x6818/build/buildroot-2023.02.1” >>> toolchain-external-custom Configuring Incorrect selection of kernel headers: expected 3.4.x, got 4.10.x make: *** [package/pkg-generic.mk:283:/home/cmy/x6818/build/buildroot-2023.02.1/output/build/toolchain-external-custom/.stamp_configured] 错误 1
根据你提供的信息,你运行了一个名为“build_root.sh”的脚本,该脚本似乎在构建一个名为“toolchain-external-custom”的软件包时遇到了问题。错误消息提示你选择了错误的内核头文件版本,期望的是3.4.x,而实际的是4.10.x。你需要检查你的构建环境和配置,确保正确的内核头文件版本被选择和使用。
2023-07-21T16:24:18 checking whether mknod can create fifo without root privileges... configure: error: in `/mnt/rk3399/3399_4.4/buildroot/output/rockchip_rk3399/build/host-tar-1.29': 2023-07-21T16:24:18 configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) 2023-07-21T16:24:18 See `config.log' for more details 2023-07-21T16:24:18 make[1]: *** [package/pkg-generic.mk:221: /mnt/rk3399/3399_4.4/buildroot/output/rockchip_rk3399/build/host-tar-1.29/.stamp_configured] Error 1 2023-07-21T16:24:18 make: *** [/mnt/rk3399/3399_4.4/buildroot/output/rockchip_rk3399/Makefile:16: _all] Error 2 Command exited with non-zero status 1 you take 0:19.87 to build builroot ERROR: Running build_buildroot failed! ERROR: exit code 1 from line 715: /usr/bin/time -f "you take %E to build builroot" $COMMON_DIR/mk-buildroot.sh $BOARD_CONFIG
根据提供的错误信息,问题出现在运行 configure 命令时。错误信息中提到了一个解决方案,即在环境中设置 FORCE_UNSAFE_CONFIGURE=1 来绕过此检查。
你可以按照之前提到的步骤尝试解决问题:
1. 执行以下命令,设置环境变量:
```
export FORCE_UNSAFE_CONFIGURE=1
```
2. 然后重新运行构建命令:
```
/usr/bin/time -f "you take %E to build builroot" $COMMON_DIR/mk-buildroot.sh $BOARD_CONFIG
```
这样设置环境变量后,应该可以绕过权限检查,并继续进行构建过程。
如果问题仍然存在,你可以查看 `config.log` 文件,其中可能包含更详细的错误信息。你可以使用以下命令查看该文件:
```
cat config.log
```
请确保你的构建环境满足 RK3399 SDK 的要求,并且所有依赖项都正确安装。如果问题仍然存在,请提供更多关于构建环境、配置选项以及其他错误信息的详细信息,以便我能够提供更准确的帮助。
阅读全文