Russian Qt Forum
Сентябрь 21, 2024, 17:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сборка Phonon в VS2008  (Прочитано 5111 раз)
Etud
Гость
« : Декабрь 17, 2009, 01:09 »

Подскажите плиз как правильно установить Phonon, так как ошибка линковки ?

Почитал в Интернет статьи:
- Compilation of Phonon under Windows XP
- How to Compile Qt Phonon in Windows Vista

Для установки требуется:
1) Microsoft SDKs
2) Microsoft DirectX SDK


Конфигурация Qt (статическая):
Код:
configure -static -release -no-exceptions -no-qt3support 
-openssl -webkit -qt-zlib -qt-gif -qt-libpng -qt-libjpeg -phonon

Прописал системные переменные:
INCLUDE
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
LIB
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

Но Microsoft DirectX SDK не устанавливал, т.к. DirectShow вроде работает...


После сборки:
1) в каталоге C:\qt\4.5.3\lib  появилась либа phonon;
2) в каталоге C:\qt\4.5.3\plugins\phonon_backend появилась либа phonon_ds9.

но mediaplayer из \demos\ не собирается, т.к. ошибки линковки.

А нужно ли еще эта опция конфигурации Непонимающий
-phonon -phonon-backend

Записан
Etud
Гость
« Ответ #1 : Декабрь 17, 2009, 01:13 »

Log

Код:
Output Window 
  RCC mediaplayer.qrc
MOC mediaplayer.h
Compiling...
qrc_mediaplayer.cpp
moc_mediaplayer.cpp
mediaplayer.cpp
main.cpp
Generating Code...
Linking...
   Creating library release\mediaplayer.lib and object release\mediaplayer.exp
main.obj : warning LNK4217: locally defined symbol ??1AudioOutput@Phonon@@UAE@XZ (public: virtual __thiscall Phonon::AudioOutput::~AudioOutput(void)) imported in function __unwindfunclet$??1MediaPlayer@@UAE@XZ$0
mediaplayer.obj : warning LNK4049: locally defined symbol ??1AudioOutput@Phonon@@UAE@XZ (public: virtual __thiscall Phonon::AudioOutput::~AudioOutput(void)) imported
main.obj : warning LNK4217: locally defined symbol ??1MediaObject@Phonon@@UAE@XZ (public: virtual __thiscall Phonon::MediaObject::~MediaObject(void)) imported in function "public: virtual __thiscall MediaPlayer::~MediaPlayer(void)" (??1MediaPlayer@@UAE@XZ)
mediaplayer.obj : warning LNK4049: locally defined symbol ??1MediaObject@Phonon@@UAE@XZ (public: virtual __thiscall Phonon::MediaObject::~MediaObject(void)) imported
main.obj : warning LNK4217: locally defined symbol ??1AbstractAudioOutput@Phonon@@UAE@XZ (public: virtual __thiscall Phonon::AbstractAudioOutput::~AbstractAudioOutput(void)) imported in function "public: virtual __thiscall MediaPlayer::~MediaPlayer(void)" (??1MediaPlayer@@UAE@XZ)
mediaplayer.obj : warning LNK4049: locally defined symbol ??1AbstractAudioOutput@Phonon@@UAE@XZ (public: virtual __thiscall Phonon::AbstractAudioOutput::~AbstractAudioOutput(void)) imported
main.obj : warning LNK4217: locally defined symbol ??1Path@Phonon@@QAE@XZ (public: __thiscall Phonon::Path::~Path(void)) imported in function "public: virtual __thiscall MediaPlayer::~MediaPlayer(void)" (??1MediaPlayer@@UAE@XZ)
mediaplayer.obj : warning LNK4049: locally defined symbol ??1Path@Phonon@@QAE@XZ (public: __thiscall Phonon::Path::~Path(void)) imported
mediaplayer.obj : warning LNK4217: locally defined symbol ??1VideoWidget@Phonon@@UAE@XZ (public: virtual __thiscall Phonon::VideoWidget::~VideoWidget(void)) imported in function __unwindfunclet$??0MediaVideoWidget@@QAE@PAVMediaPlayer@@PAVQWidget@@@Z$0
mediaplayer.obj : warning LNK4217: locally defined symbol ??0VideoWidget@Phonon@@QAE@PAVQWidget@@@Z (public: __thiscall Phonon::VideoWidget::VideoWidget(class QWidget *)) imported in function "public: __thiscall MediaVideoWidget::MediaVideoWidget(class MediaPlayer *,class QWidget *)" (??0MediaVideoWidget@@QAE@PAVMediaPlayer@@PAVQWidget@@@Z)
mediaplayer.obj : warning LNK4217: locally defined symbol ?setFullScreen@VideoWidget@Phonon@@QAEX_N@Z (public: void __thiscall Phonon::VideoWidget::setFullScreen(bool)) imported in function "protected: virtual void __thiscall MediaVideoWidget::mouseDoubleClickEvent(class QMouseEvent *)" (?mouseDoubleClickEvent@MediaVideoWidget@@MAEXPAVQMouseEvent@@@Z)
mediaplayer.obj : warning LNK4217: locally defined symbol ?play@MediaObject@Phonon@@QAEXXZ (public: void __thiscall Phonon::MediaObject::play(void)) imported in function "public: void __thiscall MediaPlayer::playPause(void)" (?playPause@MediaPlayer@@QAEXXZ)
mediaplayer.obj : warning LNK4217: locally defined symbol ?seek@MediaObject@Phonon@@QAEX_J@Z (public: void __thiscall Phonon::MediaObject::seek(__int64)) imported in function "public: void __thiscall MediaPlayer::playPause(void)" (?playPause@MediaPlayer@@QAEXXZ)
mediaplayer.obj : warning LNK4217: locally defined symbol ?currentTime@MediaObject@Phonon@@QBE_JXZ (public: __int64 __thiscall Phonon::MediaObject::currentTime(void)const ) imported in function "public: void __thiscall MediaPlayer::playPause(void)" (?playPause@MediaPlayer@@QAEXXZ)
mediaplayer.obj : warning LNK4217: locally defined symbol ?totalTime@MediaObject@Phonon@@QBE_JXZ (public: __int64 __thiscall Phonon::MediaObject::totalTime(void)const ) imported in function "public: void __thiscall MediaPlayer::playPause(void)" (?playPause@MediaPlayer@@QAEXXZ)
mediaplayer.obj : warning LNK4217: locally defined symbol ?pause@MediaObject@Phonon@@QAEXXZ (public: void __thiscall Phonon::MediaObject::pause(void)) imported in function "public: void __thiscall MediaPlayer::playPause(void)" (?playPause@MediaPlayer@@QAEXXZ)

................
release\mediaplayer.exe : fatal error LNK1120: 2 unresolved externals
Записан
crackedmind
Гость
« Ответ #2 : Декабрь 17, 2009, 22:59 »

Вообще нужна эти опции. А то qmake не будет дописывать в makefile'ы нужные либы. Можно сделать так:
Открыть qt\4.6.0\mkspecs\qtconfig.pri добавить phonon phonon-backend к переменной QT_CONFIG Улыбающийся
Записан
Etud
Гость
« Ответ #3 : Декабрь 18, 2009, 00:01 »

 Злой

1) Пишут, что Phonon вроде бы работает для динамической линковки !
   Так ли скажите ?

2) Нужна ли DirectX SDK обязательно ? (лень пока пересобирать)

P.S. Попробовал Qt 4.6 - так все либы в bin уже собраны
и примеры работают, но динамически

Записан
Dendy
Гость
« Ответ #4 : Декабрь 18, 2009, 00:44 »

Для самого Фонона SDK не нужна, а для бекенда - нужна, так что ставьте. Пересобрать нужно будет только бекенд.
Записан
Etud
Гость
« Ответ #5 : Декабрь 18, 2009, 14:22 »

Еще раз спрошу:

Цитировать
Phonon работает только для динамической линковки ?

Записан
Dendy
Гость
« Ответ #6 : Декабрь 18, 2009, 18:24 »

Уверен, что можно собрать и статически, только вместе с бекендами. А это значит что все зависимости как самого Фонона, так и конкретных бекендов должны быть разрешены до configure. Дальше не подскажу, ибо не сбирал.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 20.