| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT4] компилится но не работает |
| Автор: nanoo 19.10.2007, 19:19 | ||
Привет всем юниксоидам. Есть такой простенький код
суть простая, нажимаешь кнопочку - появляется меседжбокс. Только вот не появляется этот меседжбокс! В чем грабли не пойму. Версия 4.2. Заранее спасибо. |
| Автор: nickless 19.10.2007, 19:38 |
| У меня появляется (если инклюды написать как положено с большой буквы). Как и в чем компилируем, что пишет в консоли? |
| Автор: JackYF 19.10.2007, 19:44 |
connect(this,SIGNAL(clicked()),this,SLOT(hello())); упс, значит и так можно. |
| Автор: nanoo 19.10.2007, 20:14 | ||
Компилирую под виндой хр при помощи минжв. А зачем большие букавки в инклюдах то? мона и маленькие. Это, кажется, в документации написано. Что пишет? Ну что обычно компилер пишет? что делает, то и пишет. Это как в анекдоте: небыло у юниксоидов скринсейверов, они и придумали configure+make. Только я програмер такой себе. Занимаюсь кодингом долго уже, но редко. В общем, не ламер. Поэтому сообщения компилера об ошибках различаю. Так вот компилится все на ура. версия qt 4.2 Я вот что думаю, может это в библиотеке баг какой-то... Или это я такой пряморукий.... === зы винда у меня, это с новым местом работы связано. Преданый линуксоид два.пять года уже. Начинал с кнопикса, потом сюзи9.1 была, через полгода дебиан3.1 поставил. Теперь в основном убунту юзаю. Поставить времени нету. |
| Автор: archimed7592 20.10.2007, 11:38 | ||
Что возвращает connect? Уверен, что moc отрабатывает?
Либо QHBoxLayout, либо qhboxlayout.h... Маленькими можно только в винде ибо она не чуствительна к регистру в именах сущностей ФС. На линухе такое не скомпилиться. Если ты так уверен, что делаешь всё правильно, что даже не хочешь сообщить нам что именно ты делаешь, то зачем задавать здесь вопросы? |
| Автор: nanoo 20.10.2007, 12:20 |
| Скриншот приклеплен. Насчет дебугера. Я его включать не умею ибо никогда не использовал. Как? Большие буковки... да с этим согласен, признаю, что не прав. Добавлено через 7 минут и 4 секунды Ага. Коннект не срабатывает. У кого какие идеи? |
| Автор: archimed7592 20.10.2007, 12:29 | ||||
nanoo, во-первых, измени вот это:
Во-вторых, никогда не делай скриншотов... Неужели сложно написать mingw32-make > make.log 2>&1 и выложить содержимое make.log? В-третьих сделай mingw32-make clean и только потом просто mingw32-make - и выложи лог. И ещё, покажи содержимое своего .pro Добавлено через 1 минуту и 44 секунды
Ага, идеи в том, что не отрабатывает moc. Зачем изобретаешь велосипеды? Нельзя что ль перенести описание класса в .h? Зачем нужен main.moc? Зачем делать работу за утилиты, которые эту работу должны делать сами? |
| Автор: nanoo 20.10.2007, 12:32 |
| Ага. С moc я чето не то сделал. Сгенерил main.moc опять в ручную и заработало. Всем спасибо. |
| Автор: archimed7592 20.10.2007, 12:54 | ||
Открой секрет: зачем делать это вручную? |
| Автор: nickless 20.10.2007, 15:32 | ||
Я кстати компилировал qmake-ом, он всё автоматически сделал как надо
|
| Автор: archimed7592 20.10.2007, 15:38 |
Не может такого быть - moc не обрабатывает .cpp файлы, пока явно не укажешь. |
| Автор: nickless 20.10.2007, 15:51 | ||||
Ну у меня работает
|
| Автор: nanoo 21.10.2007, 17:12 | ||||
Да это так... что бы меньше файлов писать. Например напишешь какой-нить class.h и там опять кучку инклюдов. В больших проектах этого лучше не делать. Кстати, попробывал без moc - да, действительно работает. Но #include"main.moc" в конце все равно должно быть. |
| Автор: bsa 24.10.2007, 11:25 | ||||||
1. Кучу инклюдов совсем подключать не обязательно. Достаточно в хидере объявить классы, на которые ссылаешься:
2. На счет больших проектов ты ошибаешься. В больших проектах надо создавать директории, в которых надо группировать все по смыслу. |
| Автор: nanoo 24.10.2007, 19:12 | ||||||||
1. Это имеет значение? Все равно кнопки лишние нажимать 2. Это я и имею ввиду. В больших проектах все надо по полочкам. Что-бы все было по местам. Даешь "правила хорошего кода" |
| Автор: Любитель 24.11.2007, 18:31 |
Второе, вроде как, deprecated. На времени компиляции очень сказывается. |
| Автор: archimed7592 24.11.2007, 23:15 | ||
|