Не удалось загрузить шрифт в SFML.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Не удалось загрузить шрифт в SFML.

Сообщение Anonymous »

Описание проблемы
Я пытаюсь написать текст на экране, но такое ощущение, что что бы я ни делал, я всегда получаю:

Код: Выделить всё

Failed to load font "../assets/Font.ttf" (failed to create the font face)
Очень простой пример кода.

Код: Выделить всё

#include

int main()
{
sf::Font font;
font.loadFromFile("../assets/Font.ttf");

sf::RenderWindow window(sf::VideoMode(800, 600), "SFML works!");
sf::Text text("Hello World", font, 50);

while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.draw(text);
window.display();
window.clear();
}

return 0;
}
Я выполняю сборку с помощью Cmake и ожидаю, что проблема кроется в моих файлах CMakeLists. У меня есть один основной и подкаталог, например: (тоже очень просто)

Код: Выделить всё

#Main

cmake_minimum_required(VERSION 3.0)
project(Sorting_Visualization)

add_subdirectory(src)

Код: Выделить всё

# Sub Directory

add_executable(${PROJECT_NAME} main.cpp)

find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED)
target_link_libraries(${PROJECT_NAME} sfml-graphics sfml-audio)
Структура файла:

Код: Выделить всё

.
├── assets
│   └── Font.ttf
├── CMakeLists.txt
└── src
├── CMakeLists.txt
└── main.cpp
Что я пробовал
Я читал, что аналогичные проблемы возникали, когда люди, использующие Visual Studio, связывали выпускные библиотеки со своими отладочными сборками. Было предложено связать с ex. sfml-graphics-d для библиотек отладки. Однако у меня это, похоже, не работает, и, используя dpkg libsfml-dev, я не вижу файлов, соответствующих sfml-graphics-d. Может быть, мне их как-нибудь установить?. Или это какая-то специфичная проблема Visual Studio?
Кроме того, я думаю, что мне не хватало зависимости Freetype во время установки SFML, однако при запуске ldd в моем файле sfml-graphics.so кажется, что найден freetype.

Код: Выделить всё

libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f26fdca0000)
Наконец, я подумал, что, возможно, шрифт, который я использую, просто несовместим. Но, конечно же, можно использовать любой шрифт истинного типа. Вот ссылка на шрифт.
Подводя итог
Думаю, я прочитал почти все, что есть в Интернете, и до сих пор в полном тупике. Единственное, что осталось, это моя ссылка в Cmake, по которой я не нашел четких ресурсов, и я довольно новичок в работе с библиотеками. Буду очень признателен за некоторые рекомендации по этому поводу :)

Подробнее здесь: https://stackoverflow.com/questions/745 ... nt-in-sfml
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»