【问题标题】:fatal error: freetype/config/ftheader.h致命错误:freetype/config/ftheader.h
【发布时间】:2016-04-26 22:12:54
【问题描述】:

我正在尝试使用 freeglut2 在 OpenGL 中呈现文本。当我包含以下标题时,

#include <freetype2/ft2build.h>

它给出了以下错误:

/usr/local/include/freetype2/ft2build.h:37:38: fatal error: freetype/config/ftheader.h: No such file or directory

但是当我转到 /usr/local/include/freetype2/freetype/config 时,我找到了文件 ftheader.h。

请帮助我解决问题。谢谢。

我去了this,但没有任何效果。

【问题讨论】:

    标签: c++ g++ freetype freetype2


    【解决方案1】:

    您的编译器会在 /usr/local/include 中搜索包含,因此当您这样做时:

    #include <freetype2/ft2build.h>
    

    它找到/usr/local/include/freetype2/ft2build.h

    但是这个文件试图包含freetype/config/ftheader.h并且没有

    /usr/local/include/freetype/config/ftheader.h
    

    但是

    /usr/local/include/freetyp2/freetype/config/ftheader.h
    

    所以你应该将-I/usr/local/include/freetyp2 传递给你的编译器并做一个

    #include <ft2build.h>
    

    是正确的。

    如果您的系统支持 - 使用 pkg-config 实用程序,它可以提供所有编译标志,例如:

    $ pkg-config --cflags freetype2
    -I/usr/include/freetype2  
    
    $ pkg-config --libs freetype2
    -lfreetype  
    

    【讨论】:

    • 当您的系统有pkg-config 实用程序时,您可以使用它为您的编译器自动添加必要的标志。第一个示例为您提供编译标志,第二个 - 用于链接(在我的系统上)。
    • 它提供了未知选项 -I/usr/include/freetype2
    • @udhy:你只需输入pkg-config --cflags freetype2。下面的行是由实用程序产生的。你应该把它传递给你的编译器。
    • 非常感谢。这是非常好的解释。
    【解决方案2】:

    通过阅读本文档:http://freetype.org/freetype2/docs/tutorial/step1.html#section-1

    您需要将 /usr/local/include/freetype2 添加到您的包含路径中。

    然后你将 ft2build.h 包含在:

    #include <ft2build.h>
    

    然后当 ft2build.h 包含 freetype/config/ftheader.h 时,它会在包含路径中的 freetype2 目录中查找并找到它。

    【讨论】:

    • 能否请您详细说明如何添加/usr/local/include/freetype2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2021-03-06
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多