安装错误:ftheader.h:没有这样的文件或目录
Posted
技术标签:
【中文标题】安装错误:ftheader.h:没有这样的文件或目录【英文标题】:Install error: ftheader.h: No such file or directory 【发布时间】:2013-10-31 02:32:09 【问题描述】:当我尝试构建 matplotlib-1.3.1 时,我收到以下 freetype 标头错误。可能它没有找到 ftheader.h。关于如何解决这个问题的任何想法?
注意:我刚刚按照中提到的说明安装了 Freetype-2.5.0.1 FreeType Install 因为从源代码手动构建 Matplotlib-1.3.1 由于最初未找到所需的包“freetype”而失败。
In file included from src/ft2font.h:16,
from src/ft2font.cpp:3:
/usr/include/ft2build.h:56:38: error: freetype/config/ftheader.h: No such file or directory
In file included from src/ft2font.cpp:3:
src/ft2font.h:17:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:18:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:19:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:20:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:21:10: error: #include expects "FILENAME" or <FILENAME>
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_algobase.h:69,
from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/char_traits.h:41,
from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/string:42,
from ./CXX/Python2/Exception.hxx:46,
from ./CXX/Exception.hxx:40,
from ./CXX/Python2/Objects.hxx:44,
from ./CXX/Python2/Extensions.hxx:52,
from ./CXX/Extensions.hxx:40,
from src/ft2font.h:6,
from src/ft2font.cpp:3:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:91: error: expected template-name before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:91: error: expected ‘’ before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:91: error: expected unqualified-id before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:390: error: expected template-name before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:390: error: expected ‘’ before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:390: error: expected unqualified-id before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:474: error: expected template-name before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:474: error: expected ‘’ before ‘<’ token
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_iterator.h:474: error: expected unqualified-id before ‘<’ token
我尝试在未安装 numpy/scipy/matplotlib 的新虚拟机上运行 sudo yum install *-devel
;但在我之前的 VM 映像中也收到了以下错误消息。这是我使用的虚拟机特有的问题吗?注意:我在 Oracle VirtualBox VM 上使用 Hortonworks Sandbox v1.3
Error: metis conflicts with cmake-2.6.4-5.el6.x86_64
Error: php-pecl-apcu conflicts with php-pecl-apc-3.1.9-2.el6.x86_64
Error: cpupowerutils-devel conflicts with cpufrequtils-devel-007-6.el6.x86_64
Error: Package: libgendersplusplus-1.20-1.el6.x86_64 (HDP-epel)
Requires: libgenders(x86-64) = 1.20-1.el6
Installing: libgenders-1.14-2.el6.rf.x86_64 (HDP-UTILS-1.1.0.15)
libgenders(x86-64) = 1.14-2.el6.rf
Error: zeromq3-devel conflicts with zeromq-devel-2.2.0-4.el6.x86_64
Error: Package: rubygem-passenger-devel-3.0.21-5.el6.x86_64 (HDP-epel)
Requires: rubygem(passenger) = 3.0.21-5.el6
Available: 1:rubygem-passenger-3.0.12-1.el6.x86_64 (HDP-UTILS-1.1.0.15)
rubygem(passenger) = 3.0.12
Error: Package: libgenders-devel-1.20-1.el6.x86_64 (HDP-epel)
Requires: libgenders(x86-64) = 1.20-1.el6
Installing: libgenders-1.14-2.el6.rf.x86_64 (HDP-UTILS-1.1.0.15)
libgenders(x86-64) = 1.14-2.el6.rf
Error: php-pecl-apcu-devel conflicts with php-pecl-apc-devel-3.1.9-2.el6.x86_64
Error: Package: libgenders-devel-1.20-1.el6.x86_64 (HDP-epel)
Requires: libgenders(x86-64) = 1.20-1.el6
Available: libgenders-1.14-2.el6.rf.x86_64 (HDP-UTILS-1.1.0.15)
libgenders(x86-64) = 1.14-2.el6.rf
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
查看 /usr/share/doc 下的源代码树可以估计沙盒中预安装的软件包及其版本。注意:您可以清楚地看到列表中的 freetype-2.3.11 以及许多其他 lib 包,这些包在安装 *-dev 时可能会发生冲突
acl-2.2.49 foomatic-db-4.0 libedit-2.11 mpfr-2.4.1 python-setuptools-0.6.10
acpid-1.0.10 fping-2.4b2 libffi-3.0.5 mx4j-3.0.1 python-urlgrabber-3.9.1
alsa-lib-1.0.22 freetype-2.3.11 libfontenc-1.0.5 mysql-5.1.69 qt3-3.3.8b
apache-tomcat-apis-0.1 fuse-2.8.3 libgcc-4.4.7 mysql-connector-java-5.1.17 qt4
apr-1.3.9 gamin-0.1.10 libgcrypt-1.4.5 mysql-libs-5.1.69 qt-4.6.2
apr-util-1.3.9 gawk-3.1.7 libgomp-4.4.7 mysql-server-5.1.69 readline-6.0
at-3.1.10 gcc-4.4.7 libgpg-error-1.7 nagios-3.2.3 redhat-logos-60.0.14
atk-1.28.0 gd-2.0.35 libgudev1-147 nagios-plugins-1.4.9 redhat-release
attr-2.4.44
【问题讨论】:
安装*-dev
包
这是安装后的错误总结sudo yum install *-devel --skip-broken
[root@sandbox ~]# e/config/ftheader.h: No such file or directory -bash: e/config/ftheader.h::没有这样的文件或目录 [root@sandbox ~]# 在 src/ft2font.cpp:3 包含的文件中:-bash: In: command not found
如果你不得不使用--skip-broken,听起来你的系统在其他方面很糟糕。
可能已经预先安装了 freetype-2.3.11 并且我试图安装 freetype-2.5.0.1 ftheader.h 在 freetyep-2.5.0.1/include/config 所以消息似乎是用词不当!我试图卸载 freetype-2.3.11 并安装 freetype-2.5.0.1
炸掉虚拟机并重新开始。
【参考方案1】:
适用于 Mac OS 10.6.8
sudo ln -s /usr/X11/include/freetype2/freetype /usr/X11/include/.
似乎可以解决问题...如果您查看 /usr/X11/include/ft2build.h ,似乎该头文件和安装免费类型的方式确实存在问题,而不是 matplotlib问题。
【讨论】:
在 Mac OS X 10.9 上也为我工作(我收到了In file included from src/ft2font.cpp:3: In file included from src/ft2font.h:16: /usr/X11/include/ft2build.h:56:10: fatal error: 'freetype/config/ftheader.h' file not found #include <freetype/config/ftheader.h> ^ 1 error generated. error: command '/usr/bin/clang' failed with exit status 1
)。
我确认:在 OS X 10.9 上可以正常工作。我有 brew 的 freetype。
很棒的观察!我很想自己解决这个问题。谢谢!在 OSX10.9.3 上工作【参考方案2】:
一旦安装(正确)开发包,Freetype 标头应位于$(includedir)/freetype/freetype2
和$(includedir)/freetype2/freetype/config
,唯一的例外是ft2build.h
,它位于$(includedir)
。
从您显示的消息看来,/usr/include
中确实有一个ft2build.h
文件($(includedir)
的自然位置),但其余标题不在正确位置。
我不知道如何纠正这个问题,因为这可能是您的特定发行版和安装方式的问题,但我觉得最自然的解决方法是卸载(正确)freetype-dev[el]
包,然后重新-安装它,当然使用与您安装的.so匹配的发行版提供的版本,显然是2.3.11。
安装 Freetype 2.5.0.1 不会帮助您直到您成功构建库,然后在您的系统中成功安装它;只有这样,您才能在 $(includedir)
及其子目录中安装标头。
【讨论】:
【参考方案3】:对于 RHEL,请使用以下命令:
yum install freetype-devel -y
对于 Ubuntu,使用以下命令:
apt-get install libfreetype-dev -y
【讨论】:
以上是关于安装错误:ftheader.h:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目