Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: mr.Koddy от Сентябрь 30, 2004, 21:34



Название: ошибка компиляции простейшего приложения
Отправлено: mr.Koddy от Сентябрь 30, 2004, 21:34
Програмлю под линуху:)АСП 9.2.Первый раз.:)
Создаю проект в qt-Designer.Создаю пустую форму.Ничего не меняю.Создаю main.cpp:
Код:

#include <qapplication.h>
//#include "unnamed1.h" его у меня нет вобще
int main( int argc, char ** argv )
{
    QApplication a( argc, argv );
    Form1 a;
    a.show();
    a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
    return a.exec();
}

#qmake  - ok
#make
Код:

g++ -c -pipe -Wall -W -O2 -g -pipe -march=i386 -mcpu=i686 -fno-use-cxa-atexit -fno-exceptions  -DQT_NO_DEBUG -I/usr/lib/qt-3.1/mkspecs/default -I. -I/usr/lib/qt-3.1/include -I.ui/ -I. -I.moc/ -o .obj/main.o main.cpp
main.cpp: In function `int main(int, char**)':
main.cpp:6: error: syntax error before `;' token
main.cpp:7: error: `show' undeclared (first use this function)
main.cpp:7: error: (Each undeclared identifier is reported only once for each
   function it appears in.)
make: *** [.obj/main.o] Ошибка 1

Могу предположить , что не известно что такое "Form1"Хотя может я и не прав.
В чем глюк?
Спасибо.


Название: ошибка компиляции простейшего приложения
Отправлено: EugeneVC от Октябрь 01, 2004, 09:02
QApplication a( argc, argv );
Form1 a;


у тебя 2 обьекта названы как a


Название: ошибка компиляции простейшего приложения
Отправлено: mr.Koddy от Октябрь 01, 2004, 10:37
гм....так по моему было во всех исходниках, где создавалсь просто приложение.Поменял название у Form1- тоже самое.


Название: ошибка компиляции простейшего приложения
Отправлено: Anonymous от Октябрь 01, 2004, 11:14
А где
Код:
#include "file_where_your_Form1_declarated.h" 
?[/code]


Название: Re: ошибка компиляции простейшего приложения
Отправлено: Anonymous от Октябрь 01, 2004, 16:16
Код:

#include <qapplication.h>
#include "form1.h"  // <----- если форма называется form1.ui
int main( int argc, char ** argv )
{
    QApplication a( argc, argv );
    Form1 frm1;
    a.setMainWidget(&frm1);
    frm1.show();
    return a.exec();
}


Так должно работать в любом случае.

смотри тут (http://doc.trolltech.com/3.3/tutorial1-01.html)


Название: ошибка компиляции простейшего приложения
Отправлено: mr.Koddy от Октябрь 01, 2004, 19:25
Спасибо.Вроде заработало.То что я писал, тоже компилиться, но через ж.Надо юзать сначала uic, создать два файла с описнием методов и классов(базовых повидимому), а потом уже make. Мне это не очень понравилось.
ЗЫ: А чем отличается мой код от кода Гостя?


Название: ошибка компиляции простейшего приложения
Отправлено: mr.Koddy от Октябрь 01, 2004, 19:28
Ой, забыл спросить.Мне вот не понятно почему все ж таки то, что создано по умолчанию qt(main.cpp) так геморно собирается(с ошибками если "не так" собирать) и приходиться код переписывать?


Название: ошибка компиляции простейшего приложения
Отправлено: mr.Koddy от Октябрь 01, 2004, 20:15
Подскажите еще, как мне потимизировать приложение по размеру, а то просто форма без всего весит аж 600кб+?


Название: ошибка компиляции простейшего приложения
Отправлено: EugeneVC от Октябрь 01, 2004, 21:27
Цитата: "mr.Koddy"
Подскажите еще, как мне потимизировать приложение по размеру, а то просто форма без всего весит аж 600кб+?


а ты где пишешь
Win32 или Линукс

если Линукс то можно strip -s твойexe

сильно размер уменьшишь


Название: ошибка компиляции простейшего приложения
Отправлено: mr.Koddy от Октябрь 02, 2004, 11:28
В линухе.
Поподробнее плиз. make strip -s my_programm так чтоли?


Название: ошибка компиляции простейшего приложения
Отправлено: EugeneVC от Октябрь 04, 2004, 11:06
make не надо

strip -s твойexe

strip отдельная утилитка