SFML и C++ Уроки \ Разработка игр › Форумы › SFML Audio › Undefined reference to 'sf::Music::Music( )'
В этой теме 12 ответов, 5 участников, последнее обновление Ninja 7 года/лет, 10 мес. назад.
-
АвторСообщения
-
Хочу добавить музыку в проект, подключил:
C++1#include <SFML/Audio.hpp>прописал:
C++1234Music music;if(!music.openFromFile("music.ogg"))return -1;music.play();Выводит ошибки, вот скриншот:
https://drive.google.com/file/d/0ByBWNwYA3H4daEw1eWVJNGVzcmc/view?usp=sharing
На самом деле, Парился я дольше, пытался пихать эти строки и в отдельный класс, и int main() до бесконечного цикла, и в сам цикл, пробовал расширения музыки и в .mp3 и в .ogg, название песни менять, расположение, разумеется, с учетом пути в коде. Подумал, что не подключается все ,что нужно, подключил библиотеки:
C++12#include <SFML/Audio/Music.hpp>#include <SFML/Audio/Listener.hpp>Ну в общем ничего не менялось.
Еще одна неясность, если поставить код музыки вне цикла, то он жалуется на “return 0″, если же поставить внутри цикла, то он жалуется на скобку, закрывающую цикл.
C++12164 undefined reference to 'sf::Music::~Music()'164 undefined reference to 'sf::Music::~Music()'чет не пойму. ты в бесконечном цикле “пока открыто окно” создаешь музыку?
Я пытался создавать до цикла и запускать в цикле, пытался и создавать в цикле, там же его запускать
в цикле “пока открыто окно” не надо бесконечно создавать объекты классов. (примитивные типы типа bool int float и тд – ещё можно), иначе раздуется память и ВЗОРВЁТСЯ компьютер. ))))
короче тебе надо создать Music там же, где создавал Image когда то. В этом же месте и загружать файл для музыки, один раз получается. (а то ты бесконечно его загружаешь в цикле). А вот в процессе игры нужно уже запустить музыку, но там тоже могут возникнуть нюансы. Ну пока попробуй так
Я пробовал опять так записать, в начале ф-ии int main( ), а запускать в цикле), но он ругается, что не знает таких заготовок(
Со звуками та же проблема, похоже дело в библиотеки Audio.h
вот скриншот:
https://drive.google.com/file/d/0ByBWNwYA3H4daEw1eWVJNGVzcmc/view?usp=sharing
#include <SFML/Audio/Music.hpp>#include <SFML/Audio/Listener.hpp>ты подключал так. попробуй подключить так
#include <SFML/Audio.hpp>
Я пробовал, сначала подключить #include <SFML/Audio.hpp>, потом в попытках решить проблему, добавил те две библиотеки:
#include <SFML/Audio/Music.hpp>
#include <SFML/Audio/Listener.hpp>sf:: перед Music добавь чтобы вот так получилось sf::Music
если он использует пространство имён sf – using namespace sf, то это sf не нужно писать каждый раз
Я вижу, что зверский некропостинг, но все же.
У ТС, вероятнее всего, не указан sfml-audio.lib в дополнительных зависимостях компоновщика, и реализации классов из Audio.hpp просто не видны. Подробнее на официальном сайте.
У меня всё прописано как надо. И делал всё в соответствии с уроком, “по фэншую”. Но при попытке скомпилировать “с музыкой” – точно такая же ошибка:
Undefined reference to ‘sf::Music::Music( )’ -
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.