фатальная ошибка: freetype/config/ftheader.h

Я пытаюсь использовать 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.

Пожалуйста, помогите мне разобраться в проблеме. Спасибо.

Я перешел к этому но ничего не получилось.


person Laschet Jain    schedule 20.01.2016    source источник


Ответы (2)


Ваш компилятор ищет включения в /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  
person nsilent22    schedule 20.01.2016
comment
Когда в вашей системе есть утилита pkg-config, вы можете использовать ее для автоматического добавления необходимых флагов для вашего компилятора. Первый пример дает вам флаги для компиляции, второй - для линковки (в моей системе). - person nsilent22; 21.01.2016
comment
Это дает неизвестную опцию -I/usr/include/freetype2 - person Laschet Jain; 21.01.2016
comment
@udhy: Просто введите pkg-config --cflags freetype2. Строка ниже произведена утилитой. Вы должны передать его своему компилятору. - person nsilent22; 21.01.2016
comment
Большое спасибо. Это было очень красивое объяснение. - person Laschet Jain; 21.01.2016

Из этой документации: 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 путь включения и найдет его.

person Damyan    schedule 20.01.2016
comment
Не могли бы вы уточнить, как мне добавить /usr/local/include/freetype2 - person Laschet Jain; 21.01.2016