构建 Emacs 时找不到 GnuTLS。

32

我在Ubuntu16.04上构建了Emacs26,当我执行./config --prefix=/usr/local/emacs时,它显示如下:

configure: error: The following required libraries were not found:
     gnutls
Maybe some development libraries/packages are missing?
If you don't want to link with them give
     --with-gnutls=no
as options to configure

我尝试解决这个问题多次,但都失败了。谁能帮帮我,非常感谢。


构建标准程序不在 SO 的范围内,SO 是为了提供编程帮助。请尝试使用[su]或者[emacs.se]。 - Toby Speight
1
@TobySpeight 建立程序通常可能是不相关的话题,但由于Emacs是“程序员常用的软件[工具]”,因此这个问题是“相关的”(https://stackoverflow.com/help/on-topic)。甚至有一个标签专门针对它,而且OP已经使用了它。 - JBentley
是的,有一个标签用于编程(扩展)Emacs,这些问题在这里是相关的。我不认为仅仅构建Emacs适合该标签。可以说“mv”是程序员常用的工具,但构建/使用它并不是一个编程问题。 - Toby Speight
6个回答

37

错误信息告诉你两种解决问题的方法。

  1. 安装 gnutls 开发包。 你可以通过执行命令 apt-cache search 'libgnutls.*-dev' 查找,并使用 apt-get 进行安装。
  2. 不使用 gnutls 进行链接,如 ./config --prefix=/usr/local/emacs --with-gnutls=no

4
按照这些指示,我在Debian GNU/Linux 10(buster)上安装了sudo apt install libgnutls28-dev,并成功完成。 - Nate
1
以下是我需要构建容器中的emacs所需的软件包列表(使用与主机相同的版本):apt install wget make gcc libgnutls28-dev pkg-config libncurses-dev - phoxd

22

对我有效的唯一方法是安装pkg-config。


3
我也是,已经安装了开发包,但还需要这个。 - jamespo
1
对我来说,安装 libgnutls28-dev 只是解决方案的一部分。pkg-config 才是让我克服困难的关键。 - Satrapes

9

在CentOS上修复:

yum install gnutls-devel

7
对于我在Ubuntu 19.10上的情况,特别需要安装"libgnutls28-dev",其他的都不起作用。

对于Ubuntu 20.04,https://packages.ubuntu.com/focal/gnutls-dev表示需要安装`libgnutls28-dev`软件包。 - itirazimvar
1
这也是Ubuntu 22.04的正确答案。 - undefined

3

实际上,这应该不难修复。您没有告诉我们您尝试过什么。 如果您调用了 ./configure --with-gnutls=no

通常这是解决问题的一种可能性。 另一种方法是安装libgnutls开发包。只需搜索libgnutls即可。

apt-cache search libgnutls

你应该找到这个软件包。我正在运行Ubuntu 18.04,对我来说是libgnutls28-dev

希望这可以帮到您。


1

1
安装-dev软件包可能更适合用于构建其他程序? - Toby Speight
如果你真的想在“gnutls-bin”上进行开发,那么是的,请安装-dev软件包。如果你只想构建emacs,那么只需要“gnutls-bin”。 - user8128167
1
实际上,@TobySpeight是正确的。如果你想在gnutls上进行开发,你需要从这里克隆:https://github.com/gnutls/gnutls。`-dev`包含所需的头文件和库文件,如此处所示:https://packages.ubuntu.com/bionic/amd64/libgnutls28-dev/filelist。 - GLRoman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接