编译到RT288x_SDK/source/user/iptables-1.4.10出错:

本文解决Ubuntu下默认使用dash shell导致的iptables-1.4.10编译错误问题,通过修改默认shell为bash来解决。

编译到RT288x_SDK/source/user/iptables-1.4.10出错:

编译到RT288x_SDK/source/user/iptables-1.4.10出错:

libtool: link: /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-gcc  libiptc/.libs/libip4tc.so extensions/libext4.a ./.libs/libxtables.so -lm
/opt/buildroot-gcc342/bin/../lib/gcc/mipsel-linux-uclibc/3.4.2/../../../../mipsel-linux-uclibc/lib/crt1.o: In function `__start':crt1.S:(.text+0x1c): undefined reference to `main'

很是郁闷,google、baidu上都是众说纷纭,没有一个实质性的解决办法。

后来经高人指点,让我看看是不是ubuntu的bash、dash的问题。

到网上一查,还真是这个问题!!

Ubuntu的 shell 默认安装的是 dash,而不是 bash。
运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个:
$ls -al /bin/sh


dash 比 bash 更轻,更快。但 bash 却更常用。
如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。
比如编译 Android 源代码的时候,如果使用 dash,则有可能编译出错,或者编译的系统不能启动。


通过以下方式可以使 shell 切换回 bash:
$sudo dpkg-reconfigure dash
然后选择 no 或者 否 ,并确认。
这样做将重新配置 dash,并使其不作为默认的 shell 工具。


也可以直接修改 /bin/sh 链接文件,将其指定到 /bin/bash:
$sudo ln -fs /bin/bash /bin/sh

posted @ 2015-12-07 16:12 心灵捕手 阅读( ...) 评论( ...)   编辑 收藏
这个是编译成功吗 ?cp: cannot stat '/home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/plugin': No such file or directory Makefile:34: recipe for target '/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2' failed make[3]: [/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2] Error 1 (ignored) cp -fpR /home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/plugin /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/bin/nvt9856x-c540-4gv1.2/ cp: cannot stat '/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/plugin': No such file or directory Makefile:34: recipe for target '/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2' failed make[3]: [/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2] Error 1 (ignored) cp -fpR /home/sunhaoming/ipc_platform/platform/nvmp/target/linux /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/target/ cp -fpR /home/sunhaoming/ipc_platform/platform/nvmp/target/rtos /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/target/ mkdir -p /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/staging_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2 /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/tmp cp -fpR /home/sunhaoming/ipc_platform/platform/nvmp/staging_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/mini_compile /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/staging_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/ cp -fpR /home/sunhaoming/ipc_platform/platform/nvmp/staging_dir/host/include /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/staging_dir/host/ cp -fpR /home/sunhaoming/ipc_platform/platform/nvmp/tmp/partition* /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/tmp/ rm -rf \ /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/target/linux/*/files{,-*} \ /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/target/linux/*/patches{,-*} cp /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/* /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/ # don't copy subdirectories here cp: omitting directory '/home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/base-files' cp: omitting directory '/home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/bootloader' cp: omitting directory '/home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/iptables-1.4.10' cp: omitting directory '/home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/linux-4.19.91' cp: omitting directory '/home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/packages' Makefile:34: recipe for target '/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2' failed make[3]: [/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2] Error 1 (ignored) cp /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/linux-4.19.91/.config /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/linux-4.19.91/ /home/sunhaoming/ipc_platform/platform/nvmp/staging_dir/host/bin/sed -i -e 's,^# REVISION:=.*,REVISION:=unknown,g' /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/include/version.mk find /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009 -name CVS -o -name .git -o -name .svn \ | xargs -r rm -rf find /home/sunhaoming/ipc_platform/platform/nvmp/staging_dir/host/bin -maxdepth 1 -type f -perm -u=x \ | xargs -r /home/sunhaoming/ipc_platform/platform/nvmp/scripts/bundle-libraries.sh /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009/staging_dir/host/bin /bin/tar c -C /home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2 SLP_Image_Builder_for_c540-4gv1.2_251009 | bzip2 -c > /home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2 make[3]: Leaving directory '/home/sunhaoming/ipc_platform/platform/nvmp/target/imagebuilder' make[2]: Leaving directory '/home/sunhaoming/ipc_platform/platform/nvmp' export MAKEFLAGS= ;make -w -r package/index make[2]: Entering directory '/home/sunhaoming/ipc_platform/platform/nvmp' make[2]: Leaving directory '/home/sunhaoming/ipc_platform/platform/nvmp' make[1]: Leaving directory '/home/sunhaoming/ipc_platform/platform/nvmp'
最新发布
10-11
从你提供的编译日志来看,**编译过程并未完全成功**,虽然最终生成了 `SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2` 文件,但在编译过程中存在多个 **错误和警告**,特别是与文件路径缺失和目录复制失败相关。这些错误可能会导致最终镜像不完整,甚至模块(如 `nasw`)未被正确打包进系统。 --- ### 🔍 编译日志关键问题分析 1. **关键错误:** ``` cp: cannot stat '/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/plugin': No such file or directory ``` - 说明系统尝试复制 `plugin` 目录失败,可能是因为该目录未生成或路径错误。 - 如果 `nasw` 模块本应打包进 `plugin` 目录,那它可能未被正确编译或放置,导致最终镜像中缺失该模块。 2. **目录复制被忽略:** ``` Makefile:34: recipe for target '...' failed make[3]: [...] Error 1 (ignored) ``` - 虽然错误被忽略(`Error 1 (ignored)`),但这表明某些关键步骤未完成。 - 这些错误通常不会导致整个编译失败,但会导致部分组件未被正确打包。 3. **遗漏目录:** ``` cp: omitting directory '/home/sunhaoming/ipc_platform/platform/nvmp/build_dir/target-arm-ca9-linux-uclibcgnueabihf-c540-4gv1.2/linux-nvt9856x_generic/base-files' ``` - 系统在复制目录时跳过了多个关键目录,这可能导致最终镜像缺少某些功能或模块。 --- ### ❓ 这是否影响 `nasw` 模块? 是的,**很可能影响**。如果 `nasw.c` 没有被正确编译进系统,或者其生成的目标文件未被正确打包进镜像中,那么即使编译成功生成了 `.tar.bz2` 文件,设备上也**无法找到 `nasw` 模块**。 你需要确认以下几点: 1. **`nasw.c` 是否被编译:** - 查看编译过程中是否有 `nasw.c` 被编译为 `.o` 文件的输出信息。 - 检查 `Makefile` 中是否包含 `nasw.c` 的编译规则。 2. **模块是否被打包进镜像:** - 查看最终镜像中的 `/lib/modules` 或 `/usr/bin` 等目录是否包含 `nasw` 模块相关的 `.ko` 或可执行文件。 - 解压 `SLP_Image_Builder_for_c540-4gv1.2_251009.tar.bz2` 后,检查是否存在 `nasw` 模块。 3. **模块加载是否被配置:** - 确保模块在启动脚本中被加载,例如 `insmod nasw.ko` 或通过配置文件自动加载。 --- ### ✅ 建议排查步骤 1. **检查 `nasw.c` 是否被编译进系统:** - 查看编译输出中是否有类似 `Compiling nasw.c` 的信息。 - 查看 `build_dir` 中是否有 `nasw.o` 或相关中间文件。 2. **修复 `plugin` 目录缺失问题:** - 确保 `/home/sunhaoming/ipc_platform/platform/nvmp/bin/nvt9856x-c540-4gv1.2/plugin` 存在。 - 如果不存在,创建该目录或检查编译流程中是否遗漏了生成该目录的步骤。 3. **检查模块是否被打包进镜像:** - 解压 `tar.bz2` 文件,查看 `/lib/modules` 或 `/usr/bin` 中是否存在 `nasw` 模块的可执行文件或驱动。 4. **确认模块加载方式:** - 如果是内核模块,确保 `.ko` 文件存在,并在启动脚本中调用 `insmod` 加载。 - 如果是用户态模块,确保可执行文件存在于 `/usr/bin` 并在启动脚本中调用。 5. **清理并重新编译:** ```bash make clean make V=s ``` 使用 `V=s` 查看详细编译日志,定位具体错误。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值