Странная ошибка Qt4 (И скрипта configure)

Модератор: Модераторы разделов

Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Странная ошибка Qt4

Сообщение Assuri »

Во время разработки нового приложения у меня возникло две ошибки. Первая из них это со скриптом configure, в котором есть подного рода строки:

Код:

echo '#ifndef CONST_H #define CONST_H #define PROGRAM_NAME "LightLang Editor" #define VERSION '${version}' #define PROGRAM_NAME_WITH_VERSION PROGRAM_NAME VERSION #define ORGANIZATION "Vialinx" #define MY_EMAIL "sstikhonov(а)gmail.com" #define MY_JABBER "Assuri(а)jabber.ru" #endif' > sources/src/const.h

Во время старта configure выплёвывается вот такая ошибка:
./configure: line 129: sources/src/const.h: No such file or directory

Просто из консоли данный синтаксис "echo 'blabla' > sources/src/const.h" работает как требуется, то-есть создаётся файл const.h с определённым содержанием. Не понимаю почему из configure не работает. Строка #! /bin/bash и execute permissions есть у configure.

И вторая ошибка связанная с Qt4:

Код:

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Isrc -Ibuild -I. -o build/TabsWidget.o src/TabsWidget.cpp In file included from /usr/include/qt4/QtGui/qtabwidget.h:48, from /usr/include/qt4/QtGui/QTabWidget:1, from src/TabsWidget.h:4, from src/TabsWidget.cpp:2: /usr/include/qt4/QtGui/qicon.h:127: error: explicit specialization in non-namespace scope ‘class TabWidget’ /usr/include/qt4/QtGui/qicon.h:127: error: too many template-parameter-lists /usr/include/qt4/QtGui/qicon.h:127: error: explicit specialization in non-namespace scope ‘class TabWidget’ /usr/include/qt4/QtGui/qicon.h:128: error: explicit specialization in non-namespace scope ‘class TabWidget’ /usr/include/qt4/QtGui/qicon.h:131: error: ‘QDataStream& TabWidget::operator<<(QDataStream&, const TabWidget::QIcon&)’ must take exactly one argument /usr/include/qt4/QtGui/qicon.h:132: error: ‘QDataStream& TabWidget::operator>>(QDataStream&, TabWidget::QIcon&)’ must take exactly one argument In file included from /usr/include/qt4/QtGui/QTabWidget:1, from src/TabsWidget.h:4, from src/TabsWidget.cpp:2: /usr/include/qt4/QtGui/qtabwidget.h:54: error: declaration of ‘typedef enum QtValidLicenseForGuiModule TabWidget::QtGuiModule’ /usr/include/qt4/QtGui/qicon.h:55: error: conflicts with previous declaration ‘typedef enum QtValidLicenseForGuiModule TabWidget::QtGuiModule’ /usr/include/qt4/QtGui/qtabwidget.h:58: error: too many template-parameter-lists /usr/include/qt4/QtGui/qtabwidget.h:59: error: too many template-parameter-lists /usr/include/qt4/QtGui/qtabwidget.h:60: error: too many template-parameter-lists /usr/include/qt4/QtGui/qtabwidget.h:62: error: too many template-parameter-lists In file included from src/TabsWidget.cpp:2: src/TabsWidget.h:6: error: too many template-parameter-lists src/TabsWidget.h:8: error: too many template-parameter-lists src/TabsWidget.cpp:4: error: ‘TabsWidget’ has not been declared src/TabsWidget.cpp:4: error: ISO C++ forbids declaration of ‘TabsWidget’ with no type src/TabsWidget.cpp:8: error: ISO C++ forbids declaration of ‘TabsWidget’ with no type src/TabsWidget.cpp:8: error: expected ‘;’ before ‘::’ token src/TabsWidget.cpp:19: error: expected `;' at end of input src/TabsWidget.cpp:19: error: expected `}' at end of input src/TabsWidget.cpp: In member function ‘int TabWidget::TabsWidget(QWidget*)’: src/TabsWidget.cpp:4: error: only constructors take base initializers src/TabsWidget.cpp:4: error: class ‘TabWidget’ does not have any field named ‘QTabWidget’ src/TabsWidget.cpp:5: error: ‘addTab’ was not declared in this scope src/TabsWidget.cpp:6: warning: no return statement in function returning non-void src/TabsWidget.cpp: At global scope: src/TabsWidget.cpp:6: error: expected unqualified-id at end of input make: *** [build/TabsWidget.o] Error 1

Содежание TabsWidget.h и TabsWidget.cpp соответственно.

Код:

#ifndef TABSWIDGET_H #define TABSWIDGET_H #include <QtGui/QTabWidget> class TabWidget; class TabsWidget : public QTabWidget { Q_OBJECT public slots: void openNewTab(); void closeCurrentTab(); public: TabsWidget(QWidget *parent = 0); ~TabsWidget(); private: QList<TabWidget *> tabs; }; #endif

Код:

#include "TabWidget.h" #include "TabsWidget.h" TabsWidget::TabsWidget(QWidget *parent) : QTabWidget(parent) { addTab(new TabWidget(),tr("Welcome")); } TabsWidget::~TabsWidget() { foreach (TabWidget *tab,tabs) delete tab; } void TabsWidget::openNewTab() { addTab(new TabWidget(),"*"); } void TabsWidget::closeCurrentTab() { removeTab(currentIndex()); }


Вообще не понимаю в чём дело :( Если для решения проблемы необходимо увидеть TabWidget.h и TabWidget.cpp я их прикрепил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Странная ошибка Qt4

Сообщение Stauffenberg »

Значит так, у Вас в папке, где Вы компилируете программу есть еще файл TabWidget.h? Если есть, то Вы его забыли тут выложить, если нет, то дальше этого #include "TabWidget.h" мы не пойдем...

Как именно Вы собираете проект?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали: