cygwin 编译linux内核,【记录】Cygwin下交叉编译Linux内核时用make menuconfig去确认和修改配置...

 2023-09-11 阅读 25 评论 0

摘要:【背景】折腾:期间,已用make xxxx_defconfig调用默认配置:此处,接着去:make menuconfiglinux编译命令。去确认和修改配置。【折腾过程】1.去make menuconfig,结果出现“scripts/kconfig/lxdialog/checklist.o:checklist.c:(.text&#

【背景】

折腾:

期间,已用make xxxx_defconfig调用默认配置:

此处,接着去:

make menuconfig

linux编译命令。去确认和修改配置。

【折腾过程】

1.去make menuconfig,结果出现“scripts/kconfig/lxdialog/checklist.o:checklist.c:(.text+0x31): undefined reference to `wmove’”的错误:

2.虽然解决了上面的问题,接着又出现了“scripts/kconfig/mconf: scripts/kconfig/mconf: cannot execute binary file”的错误:

3.此处,可以make menuconfig之后,再去参考:

去确认一下配置。

ubuntu编译c程序。此处,还是和之前一样,什么配置都没改。使用原先别人的那个配置。

【总结】

此处,使用make menuconfig,出现一堆错误,其最终的解决办法还是:

所总结的,再次强调一遍:

此处,在Cygwin下,交叉编译Linux内核时,在make menuconfig时候出现:scripts/kconfig/mconf: scripts/kconfig/mconf: cannot execute binary file

的错误时,

makefile debug、原因是:

之前的linux源码linux-2.6.19.1.tar.bz2,是别人已经在别的某个Linux平台下,交叉编译OK之后的。

所以,此处解压后,得到的源码,其中包含了,之前别人在其Linux下,

在make whgs_defconfig

(此处,应该和是否加ARCH和CROSS_COMPILE是无关的,即,make ARCH=arm CROSS_COMPILE=arm-xscale-linux-gnueabi- whgs_defconfig

也会遇到同样的问题)

vim怎么运行c文件?时候,所生成的

scripts/basic/fixdep

scripts/kconfig/conf

以及:

在make menuconfig

(此处,应该和是否加ARCH和CROSS_COMPILE是无关的,即,make ARCH=arm CROSS_COMPILE=arm-xscale-linux-gnueabi- menuconfig

eclipse linux、也会遇到同样的问题)

时候,所生成的

scripts/kconfig/mconf

这些文件,都是“for GNU/Linux”的,无法在当前的Cygwin下运行,所以导致出现:

上述三个文件,无法运行的问题:/bin/sh: scripts/basic/fixdep: cannot execute binary file

scripts/kconfig/conf: scripts/kconfig/conf: cannot execute binary file

ubuntu编译内核?scripts/kconfig/mconf: scripts/kconfig/mconf: cannot execute binary file

解决办法是:

(1)对于原先的源码linux-2.6.19.1.tar.bz2,解压后,先去坐一次彻底清除:make mrproper

然后手动再删除make mrproper没有删除掉的scripts/kconfig/mconf

然后,后续的:make whgs_defconfig

和make menuconfig

linux 可执行文件?就不会出现:scripts/xxx/xxx: scripts/xxx/xxx: cannot execute binary file

的问题了。

内部逻辑是:

cygwin下,当去运行:scripts/basic/fixdep

scripts/kconfig/conf

scripts/kconfig/mconf

linux环境变量设置?时,会自动找到,对应的scripts/basic/fixdep.exe

scripts/kconfig/conf.exe

scripts/kconfig/mconf.exe

而此三个exe文件,都是“for MS Windows”,都是可以在Cygwin下运行的。

所以就解决了不能运行的问题。

(2)而对于另外的问题:scripts/kconfig/conf.o:conf.c:(.text+0x1f): undefined reference to `libintl_gettext’

linux内核能做什么、和:scripts/kconfig/lxdialog/checklist.o:checklist.c:(.text+0×31): undefined reference to `wmove’

原因是:

分别缺少了对应的库文件:intl和ncurses

解决办法是:

修改linux-2.6.19.1\scripts\kconfig\Makefile

加上对应的库,即,从:HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))

pygetwindow、HOST_EXTRACFLAGS += -DLOCALE

改为:HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))

IS_CYGWIN=$(shell uname | grep -i cygwin > /dev/null 2>&1 && echo yes || echo no)

ifeq ($(IS_CYGWIN),yes)

HOST_LOADLIBES += -lintl -lcurses

endif

linux内核开发?HOST_EXTRACFLAGS += -DLOCALE

即可解决此类问题。

提示:

我此处,给对应的库,加上软连接的做法:ln -s /usr/lib/libintl.a /usr/lib/libintl.so

ln -s /usr/lib/libncurses.a /usr/lib/libncurses.so

貌似是没有效果的,是无法解决上述问题的。

linux vim命令详解?并且,此处暂时是没有改动原先的内核的配置的。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/49222.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息