OpenWrt编译telnetd-ssl包提示已最新却未编译问题求助
问题
已执行以下操作:
- 下载SDK与工具链:
wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/openwrt-sdk-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/openwrt-toolchain-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst
- 校验文件安全性:
wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/sha256sums wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/sha256sums.asc gpg -v *asc sha256sum -c --ignore-missing sha256sums
- 解压SDK与工具链:
tar -xvf openwrt-sdk-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst tar -xvf openwrt-toolchain-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst
- 创建telnetd-ssl包及Makefile:
cd package mkdir telnetd-ssl vim Makefile
Makefile内容如下:
# $Id: Makefile 1146 2005-06-05 13:32:28Z nbd $ include $(TOPDIR)/rules.mk PKG_NAME:=telnetd-ssl PKG_VERSION:=0.17.41 PKG_RELEASE:=1 PKG_MD5SUM:=3063643c5d200b863cf3a794c22325aa PKG_SOURCE_URL:=https://packages.debian.org/sid/telnetd-ssl PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_CAT:=zcat PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk define Package/telnetd-ssl SECTION:=net CATEGORY:=Network TITLE:=The in.telnetd program is a server that handles the Defense Advanced Research Project Agency (DARPA) interactive telnet communication protocol. SSL telnetd replaces the regular telnetd by using SSL authentication and encryption. It works in conjunction with the regular telnetd in both directions. It checks whether the other side also uses SSL, if not it falls back to the regular telnet protocol. URL:=https://packages.debian.org/sid/telnetd-ssl DEPENDS:=libopenssl3 endef define Build/Configure $(call Build/Configure/Default,--without-pth-test --with-pth=$(STAGING_DIR),\ CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -nostdinc++" \ CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ LDFLAGS="-nodefaultlibs -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib -luClibc++ -lc -lm -lgcc") endef define Build/Compile $(call Build/Compile/Default) endef define Package/telnetd-ssl/install mkdir -p $(1)/usr/bin $(CP) $(PKG_BUILD_DIR)/src/telnetd-ssl $(1)/usr/bin/ endef $(eval $(call BuildPackage,telnetd-ssl))
执行编译命令make V=99 package/telnetd-ssl时,系统提示make: 'package/telnetd-ssl' is up to date.,但并未实际执行编译操作,这是什么原因?
原因分析与解决办法
1. 构建系统判定目标已完成
OpenWrt的构建系统会检查包的构建状态,若$(BUILD_DIR)/telnetd-ssl-0.17.41目录存在且构建标记文件已生成,Make就会认为目标已经更新完成,跳过编译流程。
解决办法:
强制清理包的构建状态后重新编译:
make package/telnetd-ssl/clean V=99 && make package/telnetd-ssl V=99
2. 版本号未触发重新构建
如果之前尝试过构建,且未修改PKG_RELEASE版本号,构建系统会认为包版本没有变化,无需重新编译。当前你的PKG_RELEASE设为1,系统会判定版本未更新。
解决办法:
修改Makefile中的PKG_RELEASE:=1为PKG_RELEASE:=2,再执行编译命令,构建系统会识别到版本变更,触发重新编译。
3. 源码包存在但构建不完整
构建系统会先检查dl/目录下的源码包,若包已存在且校验值匹配,会跳过下载步骤;如果之前的构建中途中断,可能残留构建标记文件,让Make误以为已完成编译。
解决办法:
删除源码包并清理构建目录后重新编译:
rm -f dl/telnetd-ssl-0.17.41.tar.gz make package/telnetd-ssl/clean V=99 && make package/telnetd-ssl V=99
内容的提问来源于stack exchange,提问作者elbarna
相关产品推荐
相关产品推荐

