Я успешно построил простой проект glfw , glad на коде vs. Моя проблема. Я добавляю в свой проект заголовок
sudo su
cd build
cmake ..
make
обычно работает без ошибок.
Я получаю сообщение об ошибке:
In file included from /home/gomi/Documents/ubuntuProject/main.c:3:
/usr/include/freetype2/ft2build.h:39:10: fatal error: freetype/config/ftheader.h: No such file or directory
39 | #include <freetype/config/ftheader.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~compilation terminated.
Я перешел по пути usr / include / freetype2 из терминала. Если я правильно помню, я не видел только ft2build.h в каталоге, никакой другой папки конфигурации. Я загрузил файлы freetype2, скопировал папку freetype в этот каталог и получил ту же ошибку. В конце я удалил скопированную папку freetype. Я не уверен, были ли они там, и я повредил freetype2.
Что мне делать?
После нескольких часов поисков. Думаю, я нашел это. Во-первых, он пытается найти его в неправильном каталоге, если вы не сообщите ему cmake.
Я нашел его на этой странице: https://techoverflow.net/2019/06/11/how-to-fix-ft2build-h-no-such-file-or-directory/
Я только что добавил в подключаемые каталоги vs code / usr / include / freetype2
Я поместил заголовок #include
и FT_FREETYPE_H
сразу после него, в свой файл main.c
.
Я использовал команду pkg-config --cflags freetype2
, чтобы определить его местоположение -I / usr / include / freetype2
Я перешел к файлу CMakeLists.txt
затем я добавил строку include_directories (/ usr / include / freetype2)
. Окончательный файл CMakeLists.txt выглядит так:
cmake_minimum_required (VERSION 3.20.3)
project (gomi)
include_directories (/ usr / include / freetype2)
add_executable ($ {PROJECT_NAME} glad.c main.c)
target_link_libraries ($ {PROJECT_NAME} GL dl glfw)
Мои команды для его пересборки:
cd ../ # один путь к пакету из папки сборки)
rm -r build / * # удалить все файлы в сборке)
cd build
cmake ..
make
./ myprogramname # run
Как я уже сказал, вы не должны запускать cmake
и make
как root, но это, похоже, другая проблема.
Что касается вашей проблемы, сначала удалите файл, который вы добавили вручную. Затем вы можете установить следующий пакет, чтобы устранить проблему:
sudo apt update
sudo apt install --reinstall libfreetype6-dev
Вы можете найти подобные файлы с помощью команды apt-file
.
sudo apt update
sudo apt install apt-file
sudo apt-file update
apt-file search ftheader.h
Это вернет, какой пакет содержит нужный вам файл.