LINUX.ORG.RU

Проблемы с компиляцией qt


0

0

Люди помогите!!! Пытаюсь откомпилить простенький примерчик из доки по Qt: #include <qapplication.h> #include <qpushbutton.h> int main( int argc, char **argv ) { QApplication a( argc, argv ); QPushButton hello( "Hello world!", 0 ); hello.resize( 100, 30 ); a.setMainWidget( &hello ); hello.show(); return a.exec(); } Компилю: g++ -c -I/usr/lib/qt2/include/ -L/usr/lib/ qt.cpp g++ -o qt qt.o В итоге получаю кучу (штук 20) сообщений вида: qt.o(.text+0x140): undefined reference to `QApplication::~QApplication(void)' и надпись в конце collect2: ld returned 1 exit status. Помогите пожалуйста - так хочется писать под KDE!!!

anonymous

Вместо g++ -o qt qt.o должно быть g++ -o qt qt.o -lqt (или может быть -lqt2, я под qt ничего не писал никогда).

justme
()

Маленькое пояснение к тому, что написал justme: параметр -lname (маленькая буква эль) используется для того, чтобы указать линковщику, что он должен прилинковать объектный код библиотеки с именем libname.a или libname.so (имя библиотеки обязательно должно иметь приставку lib). При этом подразумевается, что данная библиотека находится в одной из директорий библиотек по умолчанию, например в /usr/lib. Если же она (библиотека) лежит в другом месте, например /home/user1/my_libs, то необходимо указать -L/home/user1/my_libs

Akan
()
6 июля 2003 г.

Создаю проект. Создаю .ui файл. uic-ом генерирую .h и .cpp файлы соответственно. Присоединяю их к проекту, естественно, и MAKE. Люди, вот проблемка: при всем при том, что код таков

//main.cpp

#include <qapplication.h> #include "mainform.h"

int main(int a, char* b[]){ QApplication qa(a,b); MainForm* form = new MainForm(); qa.setMainWidget(form); form->show(); return qa.exec(); }

, где MainForm - это класс, наследующий у классы формы из сгенерированных .h и .cpp файлах. Вот, например, код заголовка:

#ifndef FORM1_H #define FORM1_H

#include <qvariant.h> #include <qwidget.h>

class Form1 : public QWidget { Q_OBJECT

public: Form1( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); ~Form1();

QPushButton* PushButton1; QPushButton* PushButton2;

public slots: virtual void close_slot(); virtual void open_slot();

protected: QVBoxLayout* Form1Layout; };

#endif // FORM1_H

Возникают ошибки при MAKE. А именно ошибки дублирования определений Form1::tr() в moc-овских файлах, например. Хотя все вроде бы делал корректно.

Код проекта могу скинуть на мыло. Прошу ответить на dmitryshm@mail.ru. Буду очень благодарен. Могу посодействовать Вам сам, если попросите.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.