idn2.h: 没有那个文件或目录

idn2.h: No such file or directory

我在 64 位 Centos 6.6 上,想安装 libidn2-devel。我试过 yum install libidn2-devel 但没有用。我尝试从 Internet 的各个网站下载 rpms(手动解决递归依赖关系!)

(不是这样)很快我就卡在了依赖项之一

libidn2.so.0()(64bit) is needed by libidn2-devel-0.10-1.sdl7.x86_64

我在 Internet 上找不到任何地方(对于 CentOS)。

最终,我下载了 source 并尝试构建它。

wget -c ftp://alpha.gnu.org/gnu/libidn/libidn2-0.10.tar.gz
tar -xvzf libidn2-0.10.tar.gz
./configure
make

成功!

然而,当我将它用于 运行 一个模块时,它给了我

error: idn2.h: No such file or directory
<idn2_variable> was not declared in this scope

PS : RPM 似乎很奇怪

$ rpm -q libidn2-devel
package libidn2-devel is not installed
$ rpm -q libidn2
libidn2-2.0.4-1.el6.x86_64

libidn2-devel 通过 EPEL Repo

提供
Name        : libidn2-devel
Arch        : x86_64
Version     : 2.0.4
Release     : 1.el6
Size        : 54 k
Repo        : epel
Summary     : Development files for libidn2
URL         : https://www.gnu.org/software/libidn/#libidn2
License     : (GPLv2+ or LGPLv3+) and GPLv3+
Description : The libidn2-devel package contains libraries and header files for
            : developing applications that use libidn2.

Wiki 页面 here will give you some more details, and if you want to install EPEL for use with yum then you should download (and install) this rpm 到您的系统,然后签入 /etc/yum.repos.d/epel.repo 以获取它将留下的配置文件。在那里你需要检查 [EPEL] 部分有行 enabled=1 (我认为它默认禁用)

您可以 want/need 清理您尝试手动安装的东西,以避免更新等方面的任何问题。