Openwrt编译问题:Libnettle 3.1 was not found.

最近在编译Openwrt固件,遇到一个libnettle的问题。对Openwrt不是很熟悉,折腾了几天,解决了,下面说一下思路。

问题日志如下:

checking for inline... inline
checking for ANSI C header files... (cached) yes
checking for getrandom... no
checking for getentropy... no
checking for NETTLE... no
configure: error: 
  ***
  *** Libnettle 3.1 was not found.

make[3]: *** [/home/huqian/openwrt-sdk-v1.3.5/trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/gnutls-3.4.7/.configured_yynynyynnynn] Error 1
make[3]: Leaving directory `/home/huqian/openwrt-sdk-v1.3.5/trunk/feeds/packages/libs/gnutls'
make[2]: *** [package/feeds/packages/gnutls/compile] Error 2
make[2]: Leaving directory `/home/huqian/openwrt-sdk-v1.3.5/trunk'
make[1]: *** [/home/huqian/openwrt-sdk-v1.3.5/trunk/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory `/home/huqian/openwrt-sdk-v1.3.5/trunk'
make: *** [world] Error 2
查看日志发现,是在编译gnutls-3.4.7时出现问题。继续查看该目录trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/gnutls-3.4.7/下的config.log文件,寻找与nettle相关的信息,得如下:

configure:8496: checking for NETTLE
configure:8504: $PKG_CONFIG --exists --print-errors "nettle >= 3.1"
Requested 'nettle >= 3.1' but version of Nettle is 2.7.1
You may find new versions of Nettle at http://www.lysator.liu.se/~nisse/nettle
configure:8507: $? = 1
configure:8522: $PKG_CONFIG --exists --print-errors "nettle >= 3.1"
Requested 'nettle >= 3.1' but version of Nettle is 2.7.1
You may find new versions of Nettle at http://www.lysator.liu.se/~nisse/nettle
configure:8525: $? = 1
Requested 'nettle >= 3.1' but version of Nettle is 2.7.1
You may find new versions of Nettle at http://www.lysator.liu.se/~nisse/nettle
configure:8553: result: no
configure:8556: error:
  ***
  *** Libnettle 3.1 was not found.

问题清楚了,编译需要的nettle>=3.1,而当前为2.7.1。接下来配置修改nettle版本就可以了。

该文件位置在trunk/package/libs/nettle/Makefile,可以参照此链接(nettle从2.7.1升级到3.1的日志文件),修改Makefile 即可。

链接内容转载如下:

r45526 - trunk/package/libs/nettle

Author: cyrus
Date: 2015-04-20 22:47:42 +0200 (Mon, 20 Apr 2015)
New Revision: 45526

Removed:
   trunk/package/libs/nettle/patches/
Modified:
   trunk/package/libs/nettle/Makefile
Log:
nettle: bump to 3.1

Signed-off-by: Steven Barth <steven <at> midlink.org>

Modified: trunk/package/libs/nettle/Makefile
===================================================================
--- trunk/package/libs/nettle/Makefile	2015-04-20 15:01:21 UTC (rev 45525)
+++ trunk/package/libs/nettle/Makefile	2015-04-20 20:47:42 UTC (rev 45526)
 <at>  <at>  -8,19 +8,16  <at>  <at> 
 include $(TOPDIR)/rules.mk

 PKG_NAME:=nettle
-PKG_VERSION:=2.7.1
+PKG_VERSION:=3.1
 PKG_RELEASE:=1
 PKG_USE_MIPS16:=0

 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= <at> GNU/nettle
-PKG_MD5SUM:=003d5147911317931dd453520eb234a5
-PKG_MAINTAINER:=Nikos Mavrogiannopoulos <nmav <at> gnutls.org>
+PKG_MD5SUM:=075a3699cbab48ffa2ea6f9aad91e123

 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
-
-PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=0

 PKG_CONFIG_DEPENDS := CONFIG_LIBNETTLE_MINI