Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Qt (Trolltech Qt, Nokia Qt, Digia Qt)

Автор: ruomyes
Дата сообщения: 08.04.2016 14:51
Подскажите пожалуйста, кто разбирается. Пытаюсь собрать плеер Pulsar под Windows из последних исходников отсюда. Использую для этого Qt SDK 1.2.1 и VC++ 2010. В общем, когда нажимаю "Собрать проект" в Qt, выдает ошибку "Package QtGStreamer-0.10 not found". QtGStreamer собрал из исходников по инструкции отсюда, т.е. все файлы теперь есть, но Qt их не видит.

В проекте pulsar.pro путь поиска этих библиотек записан стандартно как PKGCONFIG += QtGStreamer-0.10 QtGStreamerUi-0.10. В "Настройках сборки" (Build Environment) в Qt прописал пути:

PKG_CONFIG_PATH=C:\qt-gstreamer\install\lib\pkgconfig - достаточно одной строки, любой, на выбор или рассовываем папки по указанным путям ниже, тогда эти строчки вообще не нужны
PKG_CONFIG_LIBDIR=C:\qt-gstreamer\install\lib\pkgconfig

Дополнительно рассовал папки от скомпилированного QtGStreamer (bin, include и lib) по путям:

C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\bin
C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\include
C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\lib

Все равно нифига не видит. Так куда надо положить эти папки, чтобы Qt их увидел? Или еще что-то дописать надо в проекте? Вот тут как бы похожая проблема была, но я не понял куда прописывать строчку export PKG_CONFIG_LIBDIR=, у меня файлов с расширением .bashrc вообще нет.

В логе Qt вот такая хрень:

15:02:11: Выполняется сборка проекта pulsar...
15:02:11: Запускается: «c:\qtsdk\desktop\qt\4.8.1\msvc2010\bin\qmake.exe» C:\pulsar-master\pulsar.pro -r -spec win32-msvc2010 "CONFIG+=release"
"pkg-config" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Project ERROR: Package QtGStreamer-0.10 not found
15:02:11: Процесс «c:\qtsdk\desktop\qt\4.8.1\msvc2010\bin\qmake.exe» завершился с кодом 2.
Возникла ошибка при сборке проекта pulsar (цель: Desktop)
Во время выполнения сборки на этапе «qmake»

Похоже какая-то проблема с запуском "pkg-config", но такой утилиты и нет в комплекте с Qt (только в папке Symbian, и она нормально запускается), а я делал полную установку...

Ну что это за фигня то блин?!

Вот это помогло (все три файла нужно положить в папку C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\bin, версия файла из папки C:\QtSDK\Symbian\tools\sbs\win32\cygwin\bin не подойдет). Но появился целый ворох новых ошибок...

Главная ошибка такая:

C:\pulsar-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK_________\..\pulsar-master\main.cpp:20: ошибка: C1083: Не удается открыть файл включение: QGst/Init: No such file or directory

Остальное по-моему можно игнорировать (в cmake так, например, ошибок тебе пишет море, а реальный затык только в чем-то одном). Но в общем эту ошибку я уже обошел. Нужно из папки C:\qt-gstreamer\install\include\QtGStreamer скопировать папки QGlib и QGst в C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\include.

Теперь появилась новая, такого же плана. Сам разберусь... Папку C:\boost_1_50_0\boost в общем туда же надо было кинуть (хотя это не совсем корректно и нужно настраивать окружение, но я ни псевдонимов не знаю, ничего, а такой способ не прокатывает).

После продолжительного компилирования, новый затык:

C:\pulsar-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK_________\..\pulsar-master\network\auth.cpp:98: предупреждение: C4129: (: неизвестная escape-последовательность

Это просто предупреждение, а ошибка вот:

C:\pulsar-master\ui\shortcutsmanager.h:5: ошибка: C1083: Не удается открыть файл включение: QxtGlobalShortcut: No such file or directory

А вот сейчас проблема, потому что такой папки или файла QxtGlobalShortcut нигде нет... Похоже надо компилировать вот эту хрень и дальше как с QGst/boost.

Скомпилировал и установил, ничего никуда копировать не пришлось, следующие грабли:

C:\pulsar-master\mpris2\mediaplayer2.h:24: ошибка: C1083: Не удается открыть файл включение: QDBusAbstractAdaptor: No such file or directory

Похоже приплыли. В Qt SDK 1.2.1 есть нужный файл только для Qt 4.7.4 + msvc2008, а я компилирую под Qt 4.8.1 + msvc2010, не знаю по этой ли причине, но после добавления файла от 4.7.4 вылезла тонна ошибок, в которых разбираться уже конечно нет никакого смысла...

Да блиин...

Похоже надо ставить VC++ 2008 и не выеживаться... Или вообще под MinGW все делать.

Поставил. Те же яйца. Тонна ошибок с QDBusAbstractAdaptor. Первая такая:

C:\pulsar-master\mpris2\mediaplayer2.h:28: ошибка: C2504: 'QDBusAbstractAdaptor' : base class undefined

Код кривой? Но люди собирали как-то... Правда под Ubuntu.

Для cmake есть ключ -DBUILD_WITH_DBUS=OFF, тогда будет компилировать без этого QDBus, а есть ли что-нибудь такое для Qt 4 (qmake)?

В файле pulsar.pro первой строкой идет: "QT += core gui network script xml dbus". Убрал dbus, тонна ошибок пропала, но вернулась прежняя ошибка об отсутствующем QDBusAbstractAdaptor. QxtGlobalShortcut выше тоже иногда видит, иногда нет...

Остается MinGW. Как я понял от чего угодно может зависеть, от любой мелочи (и даже QtGStreamer версия 0.10.3 у меня скомпилировалась, а почти такая же 0.10.1 нет).

В MinGW все чуть глаже, но остановка примерно там же, ошибок при этом в четыре раза меньше:

In file included from ..\pulsar-master\mpris2\mpris2.cpp:22:
..\pulsar-master/mpris2/mediaplayer2.h:28: error: expected class-name before '{' token
In file included from ..\pulsar-master\mpris2\mpris2.cpp:23:
..\pulsar-master/mpris2/mediaplayer2player.h:31: error: expected class-name before '{' token
..\pulsar-master/mpris2/mediaplayer2player.h:86: error: ISO C++ forbids declaration of 'QDBusObjectPath' with no type
..\pulsar-master/mpris2/mediaplayer2player.h:86: error: expected ',' or '...' before '&' token
..\pulsar-master\mpris2\mpris2.cpp: In constructor 'Mpris2::Mpris2(QObject*)':
..\pulsar-master\mpris2\mpris2.cpp:32: error: 'QDBusConnection' has not been declared
..\pulsar-master\mpris2\mpris2.cpp:38: error: 'QDBusConnection' has not been declared
..\pulsar-master\mpris2\mpris2.cpp:44: error: 'QDBusConnection' has not been declared
..\pulsar-master\mpris2\mpris2.cpp:44: error: 'QDBusConnection' has not been declared

Тут человек пишет, что в Qt SDK не достает многих исходников от QDBus и нужно качать полный source код. Но я скачал текущий, подложил, ошибок только прибавилось.

В общем, все. Сейчас приберусь тут. Спасибо за внимание.

Еще можно просто другой Qt попробовать, более новый. Может вообще пятый нужен под последние исходники...

Страницы: 1234567

Предыдущая тема: Как работать с TClientDataSet (Delphi)?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.