问题
When I am trying to build matplotlib-1.3.1, I am getting the below freetype header errors. Probably it is not finding the ftheader.h. Any idea on how to solve this problem?
NOTE: I just installed Freetype-2.5.0.1 following the instructions as mentioned in FreeType Install because manually building Matplotlib-1.3.1 from source was failing due to the required package 'freetype' which was not found initially.
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
I tried running sudo yum install *-devel
on a fresh vm which has neither numpy/scipy/matplotlib installed; but get the below error message which I received also on my previous VM image. Is it a problem specific to the VM I am using? Note: I am using Hortonworks Sandbox v1.3 over Oracle VirtualBox VM
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
Viewing the source tree under /usr/share/doc gives an estimate of the packages and their versions that come pre-installed in the sandbox. Note: You can clearly see freetype-2.3.11 in the list and lots of other lib packages which may be conflicting when *-dev is installed
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
回答1:
For Mac OS 10.6.8
sudo ln -s /usr/X11/include/freetype2/freetype /usr/X11/include/.
Seems to do the trick... If you look at the /usr/X11/include/ft2build.h it seems as though it is really a problem with that header file and the way free type is installed, not a matplotlib problem.
回答2:
Once installed (properly) the development package, the Freetype headers shall be in $(includedir)/freetype/freetype2
and $(includedir)/freetype2/freetype/config
, with the only exception of ft2build.h
which is in $(includedir)
.
It seems from the message you showed that indeed there is a ft2build.h
file in /usr/include
(a natural place for $(includedir)
), yet the rest of the headers are not at the correct place.
I do not know exactly how to correct this since it is probably an issue with your particular distribution and the way you installed it, but I feel the most natural fix is to uninstall (properly) the freetype-dev[el]
package, then re-install it, using of course the distribution-provided version which matches your installed .so, apparently 2.3.11.
Installing Freetype 2.5.0.1 will not help you until you successfully build the library, then install it in your system successfully; only then you will have the headers installed in $(includedir)
and its sub-directories.
来源:https://stackoverflow.com/questions/19697457/install-error-ftheader-h-no-such-file-or-directory