make
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DQT_SHARED -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/qt4/include -I/usr/lib/qt4/include/QtCore -I/usr/lib/qt4/include/QtGui -I/usr/lib/qt4/include/QtDBus -I/usr/lib/qt4/include/QtXml -I/usr/include/ -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -Wall -D_FORTIFY_SOURCE=2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
mv -f .deps/main.Tpo .deps/main.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DQT_SHARED -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/qt4/include -I/usr/lib/qt4/include/QtCore -I/usr/lib/qt4/include/QtGui -I/usr/lib/qt4/include/QtDBus -I/usr/lib/qt4/include/QtXml -I/usr/include/ -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -Wall -D_FORTIFY_SOURCE=2 -MT decorator.o -MD -MP -MF .deps/decorator.Tpo -c -o decorator.o decorator.cpp
decorator.cpp: In member function ‘bool KWD::Decorator::enableDecorations(Time)’:
decorator.cpp:212: ошибка: cannot allocate an object of abstract type ‘KWD::Window’
window.h:53: замечание: because the following virtual functions are pure within ‘KWD::Window’:
/usr/include/kdecorationbridge.h:97: замечание: virtual QRect KDecorationBridgeUnstable::transparentRect() const
/usr/include/kdecorationbridge.h:100: замечание: virtual bool KDecorationBridgeUnstable::isClientGroupActive()
/usr/include/kdecorationbridge.h:101: замечание: virtual QList<ClientGroupItem> KDecorationBridgeUnstable::clientGroupItems() const
/usr/include/kdecorationbridge.h:102: замечание: virtual long int KDecorationBridgeUnstable::itemId(int)
/usr/include/kdecorationbridge.h:103: замечание: virtual int KDecorationBridgeUnstable::visibleClientGroupItem()
/usr/include/kdecorationbridge.h:104: замечание: virtual void KDecorationBridgeUnstable::setVisibleClientGroupItem(int)
/usr/include/kdecorationbridge.h:105: замечание: virtual void KDecorationBridgeUnstable::moveItemInClientGroup(int, int)
/usr/include/kdecorationbridge.h:106: замечание: virtual void KDecorationBridgeUnstable::moveItemToClientGroup(long int, int)
/usr/include/kdecorationbridge.h:107: замечание: virtual void KDecorationBridgeUnstable::removeFromClientGroup(int, const QRect&)
/usr/include/kdecorationbridge.h:108: замечание: virtual void KDecorationBridgeUnstable::closeClientGroupItem(int)
/usr/include/kdecorationbridge.h:109: замечание: virtual void KDecorationBridgeUnstable::closeAllInClientGroup()
/usr/include/kdecorationbridge.h:110: замечание: virtual void KDecorationBridgeUnstable::displayClientMenu(int, const QPoint&)
/usr/include/kdecorationbridge.h:111: замечание: virtual KDecorationDefines::WindowOperation KDecorationBridgeUnstable::buttonToWindowOperation(Qt::MouseButtons)
decorator.cpp:214: ошибка: cannot allocate an object of abstract type ‘KWD::Window’
window.h:53: замечание: since type ‘KWD::Window’ has pure virtual functions
decorator.cpp: In member function ‘void KWD::Decorator::handleWindowAdded(WId)’:
decorator.cpp:678: ошибка: cannot allocate an object of abstract type ‘KWD::Window’
window.h:53: замечание: since type ‘KWD::Window’ has pure virtual functions
make: *** [decorator.o] Ошибка 1
bash-4.1$
Я понимаю, что скрипт пытается создать объект абстрактного класса, но не пойму это касяк разрабов или может у меня в системе что-то не то (ну не могли же разработчики допустить такой явный баг). Быть может стоит в скриптах подправить, но я не могу найти объявления класса.
Я в c++ вообще не шарю, но я понимаю, что тут класс объявляется в пространстве имен KWD а все в пространстве имен является абстрактным. Ну неужели разработчики допустили такую глупую ошибку???
Наверно я чего-то не понимаю. Помогите пожалуйста скомпилировать этот гребанный kde4-window-decorator!
Я в c++ вообще не шарю, но я понимаю, что тут класс объявляется в пространстве имен KWD а все в пространстве имен является абстрактным.
Да... Вы в С++ точно не шарите "Всё в пространстве имён является абстрактным" - откуда Вы это взяли %)
Абстрактный класс KWD потому, что наследован от абстрактного класса KDecorationBridgeUnstable, но не реализовал его все методы, конкретно - написано в Вашем первом сообщении:
Произошло это скорее всего потому, что класс KDecorationBridgeUnstable в новых версиях был расширен новым функционалом. Следовательно эти исходники просто нельзя скомпилировать. Нужно дописывать соответствующие методы. Возможно, если их реализацию сделать пустой, то и прокатит, но скорее всего - нет.
Произошло это скорее всего потому, что класс KDecorationBridgeUnstable в новых версиях был расширен новым функционалом. Следовательно эти исходники просто нельзя скомпилировать. Нужно дописывать соответствующие методы. Возможно, если их реализацию сделать пустой, то и прокатит, но скорее всего - нет.
Так... Я пытался собрать компиз ранних версий - тоже не вышло... Вот в Мандриве 2010.0 есть декоратор-кде4, логично предположить, что и src пакет той версии будет нормально собираться. Ан нет - абсолютно тоже самое. Попробую создать пустые методы А вдрух?
З.Ы. На самом деле мне уже это не так необходимо так как я разобрался с эмеральдом и вполне им доволен - но просто жууутко интересно
Вы немного не поняли. Это KDE4, видимо слишком новый. KDecorationBridgeUnstable - это явно класс из KDE. Если взять более старую (не знаю насколько) версию KDE4, то эти исходники, по идее должны скомпилиться.
Вы немного не поняли. Это KDE4, видимо слишком новый. KDecorationBridgeUnstable - это явно класс из KDE. Если взять более старую (не знаю насколько) версию KDE4, то эти исходники, по идее должны скомпилиться.
Ааааа... Вот беда-то.. А как-же тогда разработчики собирают пакеты?.. Что-то тут не то.. Хотя, вероятно, есть смысл попробовать собрать пакет на 2010.0, там кде 4.3.2, а я собирал под разрабатываемой версией 4.4 (4.3.5)