Появилась проблемма с .h файлами. При попытке собрать пример взятый из документации по KDevelope Cursors или AnalogClock проекты НЕ СОБИРАЮТСЯ! Ошибка ввода/вывода.
А все начинается с того, что в .h файлах типа того ОШИБКИ! Но ведь так не может быть!?
Все ашники установлены и лежат по указаному пути, но KDevelope не может их обнаружить.
Пишет сообщение, что файл или каталог не найдены.Пожалуйста разъясните мне этот момент. Сильно встало дело.
Крайне необходимо разобраться с этим вопросом. Заранее спасибо.
Попробуй прямые пути до .h файлов.
KDevelop не видел, а это так, соображения.
>Появилась проблемма с .h файлами. При попытке собрать пример взятый из документации
>по KDevelope Cursors или AnalogClock проекты НЕ СОБИРАЮТСЯ! Ошибка ввода/вывода.
>А все начинается с того, что в .h файлах типа того ОШИБКИ!
>Но ведь так не может быть!?
>Все ашники установлены и лежат по указаному пути, но KDevelope не может
>их обнаружить.
>Пишет сообщение, что файл или каталог не найдены.
>
>Пожалуйста разъясните мне этот момент. Сильно встало дело.
>Крайне необходимо разобраться с этим вопросом. Заранее спасибо.Появилась? А раньше была? После чего появилась?
Какой Qt используешь? И с каким Kdevelop собран?
до этого проблем с .h файлами не было.
Просто пытаюсь писать сокеты, но как-то пока не очень выходит.
Поэтому решила попробовать поработать и потестить како-нить примерчик.
Вот на примерах ничего и не выходит.Компиляция проходит только с библиотеками не относящимися к QT.
Есть еще вопрос: меня интересуют таймеры и их реализация.
Кто может подсказать?
>до этого проблем с .h файлами не было.
>Просто пытаюсь писать сокеты, но как-то пока не очень выходит.
>Поэтому решила попробовать поработать и потестить како-нить примерчик.
>Вот на примерах ничего и не выходит.
>
>Компиляция проходит только с библиотеками не относящимися к QT.
>
Ну вообщем понятно, а ты чем их пытаешься компилировать? нужен moc!!! от qt
Расскажу как я делал для Qt3:
Makefile:
# получаем сначала мейк из файла проекта
s423.mak: s423.pro Clock.h
qmake -o s423.mak s423.pro
# А вот это мейк обрабатывается обычными средствами
s423: s423.cpp s423.mak
make -f s423.mak s423набираешь make s423 и получаешь слинкованный файл.
#Ну а это сам файл проекта
s423.pro:
TEMPLATE = app
HEADERS += Clock.h
SOURCES += s423.cpp
TARGET = s423
CONFIG += qt warn_on relase#А исходники смотри в книжке ;-)
>Есть еще вопрос: меня интересуют таймеры и их реализация.
>Кто может подсказать?
Интересуют таймеры? почитай Макс Шлее:Qt профессиональное программирование C++
Глава 35, 423 страница
Извиняюсь конечно за наглость, но нельзя ли где-нить скачать данную
литературу в электронном виде?
Макс Шлее:Qt профессиональное программирование C++
>Извиняюсь конечно за наглость, но нельзя ли где-нить скачать данную
>литературу в электронном виде?
>Макс Шлее:Qt профессиональное программирование C++? Не знаю, поищи может в Интернете есть где, у меня бумажный вариант.
Но думаю тебе все равно не очень подойдет, потому как там чисто Qt рассматривается.
А исходник вот:
Clock.h
#ifndef _Clock_h_
#define _Clock_h_#include <qlabel.h>
#include <qdatetime.h>
#include <qtimer.h>class Clock : public QLabel {
Q_OBJECT
private:
QDateTime oldTime;public:
Clock(QWidget* pwgt = 0, const char* pszName = 0)
: QLabel(pwgt, pszName)
{
oldTime = QDateTime::currentDateTime();
QTimer* ptimer = new QTimer(this);
connect(ptimer, SIGNAL(timeout()), SLOT(updateDateTime()));
ptimer->start(200, false);
updateDateTime();
}public slots:
void updateDateTime()
{
QDateTime curTime = QDateTime::currentDateTime();
if(oldTime != curTime) {
oldTime = curTime;
setText("<H2><CENTER>" + curTime.toString(LocalDate) + "</CENTER></H2>");
}
}
};#endif // _Clock_h_
s423.cpp:
#include <qapplication.h>
#include "Clock.h"
int main(int argc, char** argv) {
QApplication app(argc, argv);Clock lbl;
app.setMainWidget(&lbl);
lbl.show();return app.exec();
}
Простите за наглость, но не могли бы ввы подсказать где можно найти данную литературу в электронном виде?
Какая ты наглая =) Ищи в гугле клондайки для программистов, а на них свою книгу. Например, http://wingman.org.ru
Все равно не могу найти ТУ САМУЮ книжечку!!!!! Помогите плииииззззз.....:)))
Уважаемый NuINu, почему-то у меня совсен не получается.
А этот moc устанавливается отдельно?
Если не сложно, расскажите поподробнее. Очень уж хочу в этом разобраться.
Заранее спасибо.
>Уважаемый NuINu, почему-то у меня совсен не получается.
>А этот moc устанавливается отдельно?
>Если не сложно, расскажите поподробнее. Очень уж хочу в этом разобраться.
>Заранее спасибо.
мок устанавливается вместе Qt, и находиться где нибудь в /usr/lib/qt/bin
если у тебя стот КДЕ наверняка и библиотеки от Qt есть, а там должен быть и мок.А что конкретно не получается тот код который я послал скомпилировать?
пиши подробней, что за ошибки. что и как делала.
Добрый день, NuINu, мне хочется поблагодарить вас за выдержку и терпение.
Надеюсь, что с вашей помощью я добьюсь результатов.
Книжку заказала, пару недель и она придет.А не получаются следующие моменты:
я создаю проект, копирую в него код представленный вами.
Затем
[root@kate ex3]# s423.mak: s423.pro Clock.h
bash: s423.mak:: command not found
[root@kate ex3]# 423.mak: s423.pro Clock.h
bash: 423.mak:: command not found
[root@kate ex3]# qmake -o s423.mak s423.pro
Error processing project file: /root/ex3/s423.pro
[root@kate ex3]# cd '/usr/share/aclocal'
[root@kate aclocal]# cd '/root/.kde/share/apps/kdevfilecreate/file-templates'
[root@kate file-templates]# cd '/root/ex3/src'
[root@kate src]# s423: s423.cpp s423.mak
bash: s423:: command not found
[root@kate src]# make -f s423.mak s423
make: s423.mak: Нет такого файла или каталога
make: *** Нет правила для сборки цели `s423.mak'. Останов.
[root@kate src]# s423.mak: s423.pro Clock.h
bash: s423.mak:: command not found
[root@kate src]# qmake -o s423.mak s423.pro
Вот таков результат. Скорее всего я все делаю неправильно.
Прошу вас подскажите!!!!!!!
Мне уже стыдно смотреть в глаза начальника.
Заранее спасибо за конкретный и оперативный ответ.
>[root@kate ex3]# s423.mak: s423.pro Clock.h
Так ГОСПОДА, коментировать НЕ НАДО!! а то девушки натуры чувственные обидится!!!
Ну начнем с простого:
>А не получаются следующие моменты:
>я создаю проект, копирую в него код представленный вами.
проект создавать не надо! это проект Qt. его создадим в текстовом редакторе.
я пользуюсь mc и kedit, надеюсь графическая оболочка на компе есть(а то kedit работать не будет)и так отвлеченно, на будущее НЕ НАДО РАБОТАТЬ ПОД РУТОМ!!! создайте себе пользователя!!!!
>Затем
>[root@kate ex3]# s423.mak: s423.pro Clock.h
создай директорию проекта, ну пусть в домашней папке.
в баше, команда >
mkdir clock
cd clock
touch Makefile
kedit Makefileвставляешь из буфера обмена в него
#----------cut--------------
s423.mak: s423.pro Clock.h
qmake -o s423.mak s423.pros423: s423.cpp s423.mak
make -f s423.mak s423
#---------cut-------------
это и будет Мейк фал. ну и запоминаем его.дальше:
touch s423.pro
kedit s423.pro
#----------cut--------------
TEMPLATE = app
HEADERS += Clock.h
SOURCES += s423.cpp
TARGET = s423
CONFIG += qt warn_on relase
#----------cut--------------
и запоминай, получаем файл проекта qtаналогично создай файлы Clock.h и s423.cpp
все теперь давай команду
make s423и пиши про ошибки.
>Вот таков результат. Скорее всего я все делаю неправильно.
>Прошу вас подскажите!!!!!!!
>Мне уже стыдно смотреть в глаза начальника.
Видно еще мало работала, ничего потом будешь смотреть ему в глаза с каждым днем все наглее и наглее :-) (или уже не ему ;-))
Спасибочки!!!!
Ща попробую. Я очень чувствительная!!!!
Пока больше ничего спрашивать не буду, попробую это.
Достаточно не просто переходить с Windows на Linux.
[root@kate ~]# make s423
g++ s423.cpp -o s423
s423.cpp:1:26: error: qapplication.h: Нет такого файла или каталога
In file included from s423.cpp:2:
Clock.h:4:20: error: qlabel.h: Нет такого файла или каталога
Clock.h:5:23: error: qdatetime.h: Нет такого файла или каталога
Clock.h:6:20: error: qtimer.h: Нет такого файла или каталога
Clock.h:33:3: warning: no newline at end of file
Clock.h:1:1: error: unterminated #ifndef
s423.cpp:14:2: warning: no newline at end of file
Clock.h:8: error: expected class-name before ‘{’ token
Clock.h:9: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
Clock.h:10: error: expected ‘;’ before ‘private’
Clock.h:14: error: expected `)' before ‘*’ token
Clock.h:24: error: expected `:' before ‘slots’
Clock.h:25: error: expected primary-expression before ‘void’
Clock.h:25: error: ISO C++ forbids declaration of ‘slots’ with no type
Clock.h:25: error: expected ‘;’ before ‘void’
Clock.h:33: error: expected `;' before ‘}’ token
s423.cpp: In function ‘int main(int, char**)’:
s423.cpp:6: error: ‘QApplication’ was not declared in this scope
s423.cpp:6: error: expected `;' before ‘app’
s423.cpp:10: error: ‘app’ was not declared in this scope
s423.cpp:11: error: ‘class Clock’ has no member named ‘show’
make: *** [s423] Ошибка 1Точно такие же ошибки, как и раньше. Что я опять сделала не так?
А может это быть из-за того, что я работаю под root?
>[root@kate ~]# make s423
>g++ s423.cpp -o s423
>s423.cpp:1:26: error: qapplication.h: Нет такого файла или каталога
Следи за рукой!!! что у тебя пишет при команде make s423?
g++ ......
А что написано в моем мейке?
s423: s423.cpp s423.mak
make -f s423.mak s423
!!!!!
файл s423.mak в диреектории присутствует?? думаю что нет.
Проверь пожалуйста свой Makefile на предмет присутствия в нем двух одинаковых целей s423.>Точно такие же ошибки, как и раньше. Что я опять сделала не
>так?
>А может это быть из-за того, что я работаю под root?
Вообщем то нет, но все же советую изучить две команды groupadd, useradd
минутное дело! и passwd
А может быть такое, что как-то не правильно прописаны пути для .h файлов?
И именно для ашников Qt?
Короче говоря, нашла я тут себе справочник команд.
Пересмотрела его.
Но откомпилировать проект не получается.
Только не злитесь, пожалуйста, а напишите еще раз команды с атрибутами для компиляции.
Спасибо.
>Короче говоря, нашла я тут себе справочник команд.
>Пересмотрела его.
>Но откомпилировать проект не получается.
>Только не злитесь, пожалуйста, а напишите еще раз команды с атрибутами для
>компиляции.
>Спасибо.
;-) А чего мне злиться то? :-)
Ладно не буду дальше мучать. есть "королевский" путь. Если уж не в программирование, то покрайней мере в компиляцию Qt проектов.Вот что у меня написано в записной книжке:
#В директории timer имеем два файла Clock.h и s423.cpp#не имея ничего кроме исходников можно автоматически получить файл проекта
qmake -project#получили файл timer.pro
#А затем и майк файл
qmake -makefile#получили файл Makefile
#А затем просто собрать проект
make#ву аля. ;-)
Ну а так, если все таки будут проблемы, оставь номер аськи я свяжусь.
Все так и делаю.
А не может у меня какой системной ошибки быть?
Спасибо за "королевский" подход.
К сожалению на работе аська не разрешена. Типа, служебный инет.
Но могу дать номер. Я ведь все же дома иногда в аське сижу.
>Все так и делаю.
>А не может у меня какой системной ошибки быть?
>Спасибо за "королевский" подход.
>К сожалению на работе аська не разрешена. Типа, служебный инет.
домашняя не подойдет, я по вечерам не работаю.>Но могу дать номер. Я ведь все же дома иногда в аське
>сижу.Понимаешь, я немогу тебе сказать ничего насчет системной ошибки, потому что ты ее здесь не приводишь, приведи вывод команды make.
И пожалуйста перечитай мой пост касаемый предыдущего вывода этой команды. Ты после него что нибудь в Makefile изменила?Вообщем приводи ошибки и уже с ними и будем разбираться.(да и за одно сразу файл мейк тоже)
Доброго времени суток...
Так же столкнулся с этой проблемой :
добавляю новый класс в проэкт KDevelop
генерируется новий класс из any_file.ui (*.h , *.cpp)
Пересобираю проэкт и получаю :" any_file.h: Нет такого файла или каталога "
ну следущие из этого последствия .Проверял наличие файла,прописывал прямые пути к ашнику,но безуспешно
К сожелению ответа на свою проблему не нашёл,на носу диплом....выручайте.
Понимаю всю прелесть командной строки,но хотелось бы услышать что-то про сам KDevelop,предпологаю запарка в нём....или....
P.S. в своих страданиях использую книгу Н.Секунова.
>Доброго времени суток...
>Так же столкнулся с этой проблемой :
>добавляю новый класс в проэкт KDevelop
>генерируется новий класс из any_file.ui (*.h , *.cpp)
>Пересобираю проэкт и получаю :
>
>" any_file.h: Нет такого файла или каталога "
>ну следущие из этого последствия .
>
>Проверял наличие файла,прописывал прямые пути к ашнику,но безуспешно
>
>К сожелению ответа на свою проблему не нашёл,на носу диплом....выручайте.
>
>Понимаю всю прелесть командной строки,но хотелось бы услышать что-то про сам KDevelop,предпологаю
>запарка в нём....или....
>
>P.S. в своих страданиях использую книгу Н.Секунова.
Ну не знаю у меня вообще Кдевелоп старый, я Qtdesigner использую, но суть у них одна, они они используют один и тот же файл проекта, если проект не собирается то надо смотреть что с проектом.
проверь две переменные
HEADERS
INCLUDEPATH
хотя если ты добавляешь просто ui файл, то достаточно к проекту добавить
в поле: FORMS = any_file.uiпо идее этого достаточно.
> в поле: FORMS = any_file.ui>проверь две переменные
>HEADERS
>INCLUDEPATHНе подскажете где эти переменные правятся,и вообще файл сборки глянуть бы...!!!!
Как ни странно в один из 20 раз получилось таки собрать проэкт,незнаю каким макаром но это было в инс-те,там он и остался.
Вообще всё время творил на С++Билдер,МСВижуал, gcc(консольки писал)
А тут получил тему с использыванием GUI под Линукс,в общих чертах клиент МуСКЛ
Буду признателен за Линки и Сорсы связанные с этим делом.
И мож у кого завалялась libstdc++.so.5 поделитесь(.линк пойдёт)??Кстати для дизайна юзаю тоже Qtdesigner
Сенкс за быстрый ответ!!! Щас будем дальше колупать
>> в поле: FORMS = any_file.ui
>
>>проверь две переменные
>>HEADERS
>>INCLUDEPATH
>
>Не подскажете где эти переменные правятся,и вообще файл сборки глянуть бы...!!!!
>
это файл проекта, с расширением .pro, для простого проекта в нем практически ничего нет:
------------------------------------
TEMPLATE = app
LANGUAGE = C++CONFIG += qt warn_on release
SOURCES += s504.cpp
FORMS = mydialog.ui
unix {
UI_DIR = .ui
MOC_DIR = .moc
OBJECTS_DIR = .obj
}--------------------------------------------------
имея его запускаешь
qmake - получается Makefile, но его один фиг можно не смотреть, хотя если бага в файле проекта, то и будет видно, какой операции нету.
ну а дальше обычный make запускаешь и все.>Как ни странно в один из 20 раз получилось таки собрать
>проэкт,незнаю каким макаром но это было в инс-те,там он и остался.
>
OK принял всё ко вниманию...стартую в Линукс(Инет рубит тока под виндой т.к. инэтовская-прога просит libstdc++.so.5 которую выкачать из мира не могу).
Извинясь за наглость: не мог бы элементарный исходничег проекта мне на мейл прислать для полного щастья потому как кроме SimpleKDE("Hello World!!!") ничё не собирается.Вернее если его править то всё норм, а вот из Дизайнера затянуть новое ГУИ не получается.
Ostropik@bigmir.net
Николай Секунов "Программирование на C++ в Linux"
правда там староватая версия кдевелопа описана, но немного "повтыкая" можно разобраться
Блин всё чудно если ручками всё писать но .... есть же QtDesigner....у меня основная непонятка каким образом мне из *.ui KDevelop-ом сгенерить новый класс...этому вопросу во всех найденых мною источника уделено оч мало внимания = восновном это так "Нажимаем добавить новый класс производный от QWidget вписываем хедеры куда надо нажимаем F8,F9 и наслаждаемся)))) [сгенерированными ошибками компилятора]";Если кто-то может бм подробнее описать єтот процес(все его подводные камни,и важные позиции),или дать ссылоку на данную инфу буду оч признателен....
>Блин всё чудно если ручками всё писать но .... есть же QtDesigner....у
>меня основная непонятка каким образом мне из *.ui KDevelop-ом сгенерить новый
>класс...этому вопросу во всех найденых мною источника уделено оч мало внимания
>= восновном это так "Нажимаем добавить новый класс производный от QWidget
>вписываем хедеры куда надо нажимаем F8,F9 и наслаждаемся)))) [сгенерированными ошибками компилятора]";
>
>
>Если кто-то может бм подробнее описать єтот процес(все его подводные камни,и важные
>позиции),или дать ссылоку на данную инфу буду оч признателен....
Я уж сам ui не буду здесь приводить, а команды напишу, в выходные позанимался с kdevelop
проект который он генерирует, очень сильно отличается от qt шного. и непосредственно ui формата в kdevelop я не нашел. с ним работает kdevelop designer, он формы то создает, но как их потом к проекту подсоединить(именно kdevelop-проекту) я пока не знаю.
Ну вообщем есть в qt такой uic, он по form1.ui создает хеадер и класс.
вот команды:uic form1.ui -o form1.h
uic -impl form1.h form1.ui -o form1.cppвообще очень рекомендую qt assistant юзать.
>uic form1.ui -o form1.h
>uic -impl form1.h form1.ui -o form1.cppЗа это спасибо!!(я немножко не так делал на выходе получал один файл)
Но проблема создания ГУИ для KDevelop средствами QtDesigner для меня остаётся открыта(((
Щас конешно поробую в чудо командной строке сгенерить класс....но думаю что не оч получится.
также жду интересные ЛИНКИ на эту тему...
>[оверквотинг удален]
>SOURCES += s423.cpp
>TARGET = s423
>CONFIG += qt warn_on relase
>
>#А исходники смотри в книжке ;-)
>
>>Есть еще вопрос: меня интересуют таймеры и их реализация.
>>Кто может подсказать?
>Интересуют таймеры? почитай Макс Шлее:Qt профессиональное программирование C++
>Глава 35, 423 страницаВыходит новая Qt4. Профессиональное программирование на C++
http://www.bhv.ru/books/full_contents.php?id=181645
>[оверквотинг удален]
>>
>>#А исходники смотри в книжке ;-)
>>
>>>Есть еще вопрос: меня интересуют таймеры и их реализация.
>>>Кто может подсказать?
>>Интересуют таймеры? почитай Макс Шлее:Qt профессиональное программирование C++
>>Глава 35, 423 страница
>
>Выходит новая Qt4. Профессиональное программирование на C++
>http://www.bhv.ru/books/full_contents.php?id=181645Уже есть книга еще новее про Qt4.5
http://www.bhv.ru/books/book.php?id=186572