UNIX/Linux specific links

本文提供了一系列针对不同编程领域的资源链接,包括UNIX/Linux特定编程教程、跨平台编程指导以及游戏开发参考资料等,适合各阶段开发者学习使用。

UNIX/Linux specific links

All platforms

Game programming

Win32

Misc.


引自: http://www.vanheusden.com/Linux/programming_howtos.html

编译卡住 make PRODUCT_NAME=be900v2 iplatform_package/busybox/{clean,compile,install} V=s openssl support zlib make[1]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[2]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[2]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig! make[2]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Entering directory '/home/tplink/code/be900v2/prplos/platform/feeds/public/prplos-v3.1.0/feed_openwrt/busybox/busybox' rm -f /home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/stamp/.busybox_installed rm -f /home/tplink/code/be900v2/Iplatform/openwrt/bin/model_brcm_bcm490x-be900v2/packages/busybox_* rm -f /home/tplink/code/be900v2/Iplatform/openwrt/bin/model_brcm_bcm490x-be900v2/packages/busybox-selinux_* rm -f /home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/packages/busybox.default.list /home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/host/packages/busybox.default.list rm -rf /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0 make[3]: Leaving directory '/home/tplink/code/be900v2/prplos/platform/feeds/public/prplos-v3.1.0/feed_openwrt/busybox/busybox' make[2]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[1]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[1]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[2]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[2]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig! make[2]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt' make[3]: Entering directory '/home/tplink/code/be900v2/prplos/platform/feeds/public/prplos-v3.1.0/feed_openwrt/busybox/busybox' . /home/tplink/code/be900v2/Iplatform/openwrt/include/shell.sh; bzcat /home/tplink/code/be900v2/Iplatform/openwrt/dl/busybox-1.35.0.tar.bz2 | /bin/tar -C /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.. -xf - Applying ./patches/001-CVE-2022-30065-awk-fix-use-after-free.patch using plaintext: patching file editors/awk.c patching file testsuite/awk.tests Applying ./patches/120-lto-jobserver.patch using plaintext: patching file scripts/Kbuild.include Applying ./patches/200-udhcpc_reduce_msgs.patch using plaintext: patching file networking/udhcp/dhcpc.c Applying ./patches/201-udhcpc_changed_ifindex.patch using plaintext: patching file networking/udhcp/dhcpc.c Applying ./patches/210-add_netmsg_util.patch using plaintext: patching file networking/netmsg.c Applying ./patches/220-add_lock_util.patch using plaintext: patching file miscutils/lock.c Applying ./patches/270-libbb_make_unicode_printable.patch using plaintext: patching file libbb/printable_string.c Applying ./patches/301-ip-link-fix-netlink-msg-size.patch using plaintext: patching file networking/libiproute/iplink.c Applying ./patches/500-move-traceroute-applets-to-bin.patch using plaintext: patching file networking/traceroute.c Applying ./patches/510-move-passwd-applet-to-bin.patch using plaintext: patching file loginutils/passwd.c Applying ./patches/520-loginutils-handle-crypt-failures.patch using plaintext: patching file loginutils/chpasswd.c patching file loginutils/cryptpw.c patching file loginutils/passwd.c Applying ./patches/530-nslookup-ensure-unique-transaction-IDs-for-the-DNS-queries.patch using plaintext: patching file networking/nslookup.c Applying ./patches/900-dhcpc-add-pipe.patch using plaintext: patching file networking/udhcp/dhcpc.c Applying ./patches/901-dhcpc_smartdhcp.patch using plaintext: patching file networking/udhcp/dhcpc.c patching file networking/udhcp/signalpipe.c Applying ./patches/902-dhcpc-fix-discover.patch using plaintext: patching file networking/udhcp/dhcpc.c Applying ./patches/903-add-logic-for-option58-59.patch using plaintext: patching file networking/udhcp/Config.src patching file networking/udhcp/Kbuild.src patching file networking/udhcp/common.h patching file networking/udhcp/dhcpc.c Applying ./patches/904-dhcpc-fix-write-pipe.patch using plaintext: patching file networking/udhcp/dhcpc.c Applying ./patches/905-add-client-update-server-IP-in-rebind-state.patch using plaintext: patching file networking/udhcp/dhcpc.c Hunk #1 succeeded at 1970 (offset 15 lines). Applying ./patches/906-BOOTP-flag-for-unicast-broadcast-poll.patch using plaintext: patching file networking/udhcp/dhcpc.c if [ -d /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1 ]; then echo =========== copy busybox from local ===============; mkdir -p /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0; rm -rf /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/*; cp -fpR /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1/* /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0; rm -f /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/index/busybox; RELATIVE_PKG_DIR=`realpath /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1 | awk -F 'prplos/platform/' '{print "../"$2}'`; ln -s $RELATIVE_PKG_DIR /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/sindex/busybox; if [ ! -f /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/path.txt ] || ! grep -q "/home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1/" /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/path.txt; then echo "/home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1/" >> /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/path.txt; fi; touch /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.copy_from_local; if [ ! -f /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/path.txt ] || ! grep -q "/home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1/" /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/path.txt; then echo "/home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1/" >> /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/path.txt; fi; elif [ -d /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0 -a -n "$(ls /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0)" ]; then echo =========== copy busybox to local ================; mkdir -p /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1; cp -fpR /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/* /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1; rm -f /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/sindex/busybox; RELATIVE_PKG_DIR=`realpath /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/src/public/busybox/1.35.0-r1 | awk -F 'prplos/platform/' '{print "../"$2}'`; ln -s $RELATIVE_PKG_DIR /home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/sindex/busybox; touch /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.copy_to_local; else echo =========== copy none for busybox ================; mkdir -p /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0; touch /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.copy_none; fi; =========== copy busybox from local =============== ln: failed to create symbolic link '/home/tplink/code/be900v2/Iplatform/openwrt/../../prplos/platform/sindex/busybox/1.35.0-r1': File exists touch /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.prepared_a0e6a7123a8cd99ea97e1ba8c73bf5cf rm -f /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.config touch /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.config grep 'CONFIG_BUSYBOX_CONFIG' /home/tplink/code/be900v2/Iplatform/openwrt/.config | sed -e "s,\\(# \)\\?CONFIG_BUSYBOX_CONFIG_\\(.*\\),\\1CONFIG_\\2,g" >> /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.config yes 'n' | make -C /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0 AR=arm-buildroot-linux-gnueabi-ar AS="arm-buildroot-linux-gnueabi-gcc -c -flto" LD=arm-buildroot-linux-gnueabi-ld NM=arm-buildroot-linux-gnueabi-nm CC="arm-buildroot-linux-gnueabi-gcc" GCC="arm-buildroot-linux-gnueabi-gcc" CXX="arm-buildroot-linux-gnueabi-g++" RANLIB=arm-buildroot-linux-gnueabi-ranlib STRIP=arm-buildroot-linux-gnueabi-strip OBJCOPY=arm-buildroot-linux-gnueabi-objcopy OBJDUMP=arm-buildroot-linux-gnueabi-objdump SIZE=arm-buildroot-linux-gnueabi-size CROSS="arm-buildroot-linux-gnueabi-" ARCH="arm64" EXTRA_CFLAGS=" -flto -I/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/usr/include -I/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/include -I/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/usr-be900v2/include -I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/toolchain/opt/toolchains/crosstools-arm_softfp-gcc-10.3-linux-4.19-glibc-2.32-binutils-2.36.1/usr/include" EXTRA_LDFLAGS="-L/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/usr/lib -L/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/lib -Wl,-rpath-link,/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/usr/lib -L/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/toolchain/opt/toolchains/crosstools-arm_softfp-gcc-10.3-linux-4.19-glibc-2.32-binutils-2.36.1/usr/lib -L/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/toolchain/opt/toolchains/crosstools-arm_softfp-gcc-10.3-linux-4.19-glibc-2.32-binutils-2.36.1/lib -flto=jobserver -fuse-linker-plugin" LDLIBS="m crypt " LD="arm-buildroot-linux-gnueabi-gcc" SKIP_STRIP=y oldconfig make[4]: Entering directory '/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0' HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/split-include HOSTCC scripts/basic/docproc GEN include/applets.h GEN include/usage.h GEN runit/Kbuild GEN runit/Config.in GEN libbb/Kbuild GEN libbb/Config.in GEN coreutils/Kbuild GEN coreutils/Config.in GEN coreutils/libcoreutils/Kbuild GEN scripts/Kbuild GEN archival/Kbuild GEN archival/Config.in GEN archival/libarchive/Kbuild GEN procps/Kbuild GEN procps/Config.in GEN libpwdgrp/Kbuild GEN printutils/Kbuild GEN printutils/Config.in GEN miscutils/Kbuild GEN miscutils/Config.in GEN debianutils/Kbuild GEN debianutils/Config.in GEN klibc-utils/Kbuild GEN klibc-utils/Config.in GEN editors/Kbuild GEN editors/Config.in GEN util-linux/Kbuild GEN util-linux/Config.in GEN util-linux/volume_id/Kbuild GEN util-linux/volume_id/Config.in GEN selinux/Kbuild GEN selinux/Config.in GEN e2fsprogs/Kbuild GEN e2fsprogs/Config.in GEN shell/Kbuild GEN shell/Config.in GEN console-tools/Kbuild GEN console-tools/Config.in GEN networking/Kbuild GEN networking/Config.in GEN networking/udhcp/Kbuild GEN networking/udhcp/Config.in GEN networking/libiproute/Kbuild GEN applets/Kbuild GEN loginutils/Kbuild GEN loginutils/Config.in GEN sysklogd/Kbuild GEN sysklogd/Config.in GEN init/Kbuild GEN init/Config.in GEN mailutils/Kbuild GEN mailutils/Config.in GEN findutils/Kbuild GEN findutils/Config.in GEN modutils/Kbuild GEN modutils/Config.in HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/kxgettext.o HOSTCC scripts/kconfig/mconf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/lex.zconf.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf scripts/kconfig/conf -o Config.in # # using defaults found in .config # .config:2:warning: trying to assign nonexistent symbol CONFIG_FEATURE_SH_IS_HUSH .config:6:warning: trying to reassign symbol HAVE_DOT_CONFIG * * Busybox Configuration * * * Settings * Enable compatibility for full-blown desktop systems (8kb) (DESKTOP) [Y/n/?] (NEW) Provide compatible behavior for rare corner cases (bigger code) (EXTRA_COMPAT) [N/y/?] (NEW) Building for Fedora distribution (FEDORA_COMPAT) [N/y/?] (NEW) Enable obsolete features removed before SUSv3 (INCLUDE_SUSv2) [Y/n/?] y Support --long-options (LONG_OPTS) [Y/?] y Show applet usage messages (SHOW_USAGE) [Y/n/?] y Show verbose applet usage messages (FEATURE_VERBOSE_USAGE) [Y/n/?] y Store applet usage messages in compressed form (FEATURE_COMPRESS_USAGE) [Y/n/?] (NEW) Support files > 2 GB (LFS) [Y/n/?] y Support PAM (Pluggable Authentication Modules) (PAM) [N/y/?] (NEW) Use the devpts filesystem for Unix98 PTYs (FEATURE_DEVPTS) [Y/n/?] y Support utmp file (FEATURE_UTMP) [Y/n/?] (NEW) Support writing pidfiles (FEATURE_PIDFILE) [Y/n/?] y Directory for pidfiles (PID_FILE_PATH) [/var/run] /var/run Include busybox applet (BUSYBOX) [Y/n/?] (NEW) Don't use /usr (INSTALL_NO_USR) [N/y/?] (NEW) Drop SUID state for most applets (FEATURE_SUID) [Y/n/?] (NEW) exec prefers applets (FEATURE_PREFER_APPLETS) [Y/n/?] y Path to busybox executable (BUSYBOX_EXEC_PATH) [/proc/self/exe] /proc/self/exe Support NSA Security Enhanced Linux (SELINUX) [N/y/?] (NEW) Clean up all memory before exiting (usually not needed) (FEATURE_CLEAN_UP) [N/y/?] (NEW) Support LOG_INFO level syslog messages (FEATURE_SYSLOG_INFO) [Y/n/?] (NEW) * * Build Options * Build static binary (no shared libs) (STATIC) [N/y/?] (NEW) Build position independent executable (PIE) [Y/n/?] y Force NOMMU build (NOMMU) [N/y/?] n Cross compiler prefix (CROSS_COMPILER_PREFIX) [] Path to sysroot (SYSROOT) [] Additional CFLAGS (EXTRA_CFLAGS) [] Additional LDFLAGS (EXTRA_LDFLAGS) [] Additional LDLIBS (EXTRA_LDLIBS) [] Avoid using GCC-specific code constructs (USE_PORTABLE_CODE) [N/y/?] (NEW) Use -mpreferred-stack-boundary=2 on i386 arch (STACK_OPTIMIZATION_386) [Y/n/?] (NEW) Use -static-libgcc (STATIC_LIBGCC) [Y/n/?] (NEW) * * Installation Options ("make install" behavior) * What kind of applet links to install > 1. as soft-links (INSTALL_APPLET_SYMLINKS) 2. as hard-links (INSTALL_APPLET_HARDLINKS) (NEW) 3. as script wrappers (INSTALL_APPLET_SCRIPT_WRAPPERS) (NEW) 4. not installed (INSTALL_APPLET_DONT) (NEW) choice[1-4?]: What kind of applet links to install
11-22
<think> 根据提供的编译日志,编译过程在配置BusyBox时卡在交互式菜单选择上。具体卡在“Installation Options ("make install" behavior)”中的“What kind of applet links to install”选择。日志显示用户需要输入1到4的选择,但编译脚本在等待用户输入,而编译环境可能没有提供交互能力。 ### 原因分析 1. **交互式配置阻塞**:BusyBox的配置过程需要用户选择安装方式(软链接、硬链接等),但编译脚本未预设该选项,导致等待用户输入。 2. **自动化构建中断**:在自动化编译环境中,没有提供标准输入,因此编译进程会一直挂起等待输入。 ### 解决方案 #### 方法1:预先配置BusyBox选项(推荐) 通过修改BusyBox的配置文件`.config`,预设`CONFIG_INSTALL_APPLET_SYMLINKS`等选项,避免交互式提问: ```bash # 进入BusyBox源码目录 cd /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0 # 设置默认选择为软链接(选项1) echo "CONFIG_INSTALL_APPLET_SYMLINKS=y" >> .config echo "CONFIG_INSTALL_APPLET_HARDLINKS=n" >> .config echo "CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS=n" >> .config echo "CONFIG_INSTALL_APPLET_DONT=n" >> .config # 或者直接使用预设配置(若已有) cp /path/to/defconfig .config ``` #### 方法2:强制非交互模式 在编译命令中添加环境变量`BB_NONINTERACTIVE=yes`跳过交互: ```bash yes 'n' | make ... BB_NONINTERACTIVE=yes ... ``` #### 方法3:修复OpenWrt构建系统 检查OpenWrt的BusyBox包配置是否完整(`feeds/packages/utils/busybox/`),确保`Config.in`中已预设安装选项。 ### 重新触发编译 完成配置后,重新执行编译命令: ```bash make PRODUCT_NAME=be900v2 iplatform_package/busybox/{clean,compile,install} V=s ``` §§相关问题§§ 1. 为什么在自动化编译环境中会出现等待用户输入的情况? 2. 如何为BusyBox的配置选项设置默认值以避免交互式提问? 3. 在OpenWrt构建系统中,哪些文件负责预设BusyBox的编译配置? 4. 除了BusyBox,还有哪些常见的软件包在编译过程中可能要求交互输入? 5. 如何修改OpenWrt的包定义(Makefile)来强制传递特定配置给BusyBox? </think>根据提供的编译日志,问题出在 **BusyBox配置阶段卡在交互式菜单选择** 上。具体卡在以下位置: ``` * Installation Options ("make install" behavior) * What kind of applet links to install > 1. as soft-links (INSTALL_APPLET_SYMLINKS) 2. as hard-links (INSTALL_APPLET_HARDLINKS) (NEW) 3. as script wrappers (INSTALL_APPLET_SCRIPT_WRAPPERS) (NEW) 4. not installed (INSTALL_APPLET_DONT) (NEW) choice[1-4?]: What kind of applet links to install ``` ### 问题原因分析 1. **非交互式构建中断**: - 编译脚本 `make -C ... oldconfig` 需要用户输入选择(`choice[1-4?]`) - 自动化构建环境无法提供交互式输入,导致进程挂起 2. **BusyBox配置未预设**: - 日志显示 `using defaults found in .config` 但后续仍弹出新配置选项(标记为`(NEW)`) - 新增的安装选项(`INSTALL_APPLET_*`)在现有配置中未定义 ### 解决方案 #### 方法1:预设BusyBox配置选项(推荐) 编辑BusyBox配置文件: ```bash # 在编译目录中设置选项 echo "CONFIG_INSTALL_APPLET_SYMLINKS=y" >> /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.config # 或直接使用完整预设配置 cp /path/to/predefined_busybox_config /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-be900v2/busybox-1.35.0/.config ``` #### 方法2:强制非交互模式 在编译命令中添加环境变量: ```bash BB_NONINTERACTIVE=yes make PRODUCT_NAME=be900v2 iplatform_package/busybox/compile V=s ``` #### 方法3:清理重建(确保配置完整) ```bash # 完全清理BusyBox make package/busybox/clean # 重新生成完整配置 make menuconfig # 手动确认所有新选项 make package/busybox/{compile,install} V=s ``` ### 根本原因预防 1. **更新配置系统**: ```bash # 修复配置不同步警告 make defconfig ``` 2. **验证配置完整性**: ```bash # 检查新增配置项 grep 'INSTALL_APPLET' .config ``` 3. **使用版本控制配置**: ```bash # 保存有效配置 cp .config config.be900v2.busybox ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值