python3 compile openwrt_openwrt 编译环境搭建及Makefile

本文详细介绍了如何在CentOS 5.8 64位系统上搭建OpenWrt编译环境,包括安装必要的软件如gnome、svn、gcc等,并通过执行特定命令更新和安装feeds。文章还提到了在编译过程中遇到的问题及其解决方案,如安装g++, ncurses, zlib, git, python等相关依赖,并强调了make menuconfig的配置过程和Makefile的重要性。" 106193540,8622558,HTML5CSS4实战:steps(n)打造打字机与奔跑熊动画,"['前端开发', 'CSS动画', 'HTML5特性', '网页特效', 'CSS3']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Openwrt编译环境搭建

操作系统 centos-5.8 64位

安装gnome, 可使用Xmanager

#yum -y groupinstall "X Window System"

#yum -y groupinstall "Desktop"

安装svn

#yum install subversion

下载openwrt源码

#svn co svn://svn.openwrt.org/openwrt/trunk/

地址:https://dev.openwrt.org/wiki/GetSource

# make menuconfig, 报错

不执行 ./scripts/feeds update -a和 ./scripts/feeds install -a 之前,

make menuconfig里是看不到LuCI选项的。

#vim README

"./scripts/feeds update -a" to get all the latest package definitions defined in feeds.conf/ feeds.conf.default respectively.

feeds.conf.default里需要下载的packege的几条git 和svn 的路径地址。

"./scripts/feeds install -a" to install symlinks of all of them into package/feeds/

在package/feeds/luci/中(原本是没有该目录的, package/feeds目录是在执行完./scripts/feeds 的两条命令之后生成的), 可以看到一些链接, ll看一下

例:community-profiles -> ../../../feeds/luci/contrib/package/community-profiles/

此处的feeds是trunk目录下的feeds目录, 原来也是没有的, 在执行完./scripts/feeds两条命令之后生成。

tmp目录本来也是没有的, 在执行完上述两条命令后, 在tmp目录下生成.config和其他文件, 在make menuconfig之后, tmp/.config更新。

trunk下的.config原来没有, 也是此时下载的。 在make menuconfig之后更新。

# make menuconfig, 报错

1. Please install the GNU C++ Compiler (g++).

#yum install gcc-c++;

2. Please install ncurses. (Missing libncurses.so or ncurses.h)

#yum install ncurses;

#yum install ncurses-devel;

3. Please install zlib. ( Missing libz.so or zlib.h)

#yum install zlib-devel

4. Please install git(git-core) v1.6.5 or later.

用wget工具: #wget https://www.kernel.org/pub/software/scm/git/git-1.9.2.tar.gz

#vim INSTALL;

#make prefix=/usr all doc info ;# as yourself

缺少ssl.h       #yum install openssl-devel;

缺少curl    http.h:54: error: expected specifier-qualifier-list before ‘CURLcode’

#yum install curl

还是缺少curl

#yum install curl-devel

warning: expat.h缺少

#yum install expat-devel;

/bin/sh: msgfmt command not found;

#yum install gettext;

/bin/sh: asciidoc command not found;

安装mercurial

#cd mercurial

#make

#make install

mercurial/base85.c:13:20: error: Python.h: No such file or directory

安装python

#yum install python

#yum install python-devel

此时make install 时, 提示需要安装python-docutils

#wget  https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tgz

报错:ERROR: certificate common name `*.c.ssl.fastly.net' doesn't match requested host name `www.python.org'.

#wget --no-check-certificate https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tgz

#hg clone -r 8.6.9 https://asciidoc.googlecode.com/hg/ asciidoc-8.6.9

#autoconf: autoconf command not found

#yum install autoconf

git安装好之后,#make menuconfig正常, 选定LuCI, 生成.config(trunk下原来是没有.config文件的)

#make

在./tmp/.config-packge.in中(此.config-package.in也是make menuconfig生成的), 有menu "LuCI"的配置

在.config中, CONFIG_PACKAGE_luci=y

在./tmp/.config中,CONFIG_PACKAGE_luci=y

在./tmp/.packagedeps:package-$(CONFIG_PACKAGE_luci) += feeds/luci/luci 中

太多的Makefile和config.in都是后来生成的, 有必要从开始Makefile看起。

一: make menuconfig V=99过程

topdir的Makfile中, include $(TOPDIR)/include/toplevel.mk

toplevel.mk中,

menuconfig: scripts/config/mconf prepare-tmpinfo FORCE

if [ \! -e .config -a -e $(HOME)/.openwrt/defconfig ]; then \

cp $(HOME)/.openwrt/defconfig .config; \

fi

$< Config.in

(1) scripts/config/mconf,toplevel.mk中,:

$(_SINGLE)$(SUBMAKE) -s-C scripts/config all CC="$(HOSTCC_WRAPPER)"

//export MAKEFLAGS= ;umask 022; make -w -s -C scripts/config all CC="gcc"

// topdir的Makefile中, _SINGLE=export MAKEFLAGS=$(space)

//toplevel.mk中,SUBMAKE :=umask 022; $(SUBMAKE)              umask 022, 表示默认的文件夹权限为755(777-022). 文件权限为644(666-022)?

scrpts/config/Makefile中,

all:conf mconf

conf: $(conf-objs)  //conf-objs :conf.o zconf.tab.o

mconf: $(mconf-objs) $(lxidag-objs)

$(CC) -o $@ $^ $(call check_lxdialog, ldflags, $(CC)) ,

生成mconf, 至此, menuconfig的第一个依赖, scripts/config/mconf 完成, 生成/scripts/config/mconf文件

(2)prepare-tmpinfo,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值