Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Maksim от Декабрь 08, 2004, 21:16



Название: Ошибка прикомпиляциии
Отправлено: Maksim от Декабрь 08, 2004, 21:16
Люди добрые!!!!!!!
Помогите пожалуйста. Прога очень легкая ноя не могу скомпелировать ее.





  #include </usr/local/include/qt/qapplication.h>
  #include </usr/local/include/qt/qlabel.h>
  int main(int argc, char *argv[])
  {
      QApplication app(argc, argv);
      QLabel *label = new QLabel("Hello, Qt!", 0);
      app.setMainWidget(label);
      label->show();
      return app.exec();
 }

Когда пишу gmake пишет какуето билеберду:      
g++     w.cpp   -o w
/tmp/ccbke3iw.o(.text+0x23): In function `main':
: undefined reference to `QApplication::QApplication[in-charge](int&, char**)'
/tmp/ccbke3iw.o(.text+0x57): In function `main':
: undefined reference to `QString::QString[in-charge](char const*)'
/tmp/ccbke3iw.o(.text+0x66): In function `main':
: undefined reference to `QLabel::QLabel[in-charge](QString const&, QWidget*, char const*, unsigned)'
/tmp/ccbke3iw.o(.text+0x109): In function `main':
: undefined reference to `QApplication::setMainWidget(QWidget*)'
/tmp/ccbke3iw.o(.text+0x12f): In function `main':
: undefined reference to `QApplication::exec()'
/tmp/ccbke3iw.o(.text+0x140): In function `main':
: undefined reference to `QApplication::~QApplication [in-charge]()'
/tmp/ccbke3iw.o(.text+0x160): In function `main':
: undefined reference to `QApplication::~QApplication [in-charge]()'
/tmp/ccbke3iw.o(.gnu.linkonce.t._ZN7QStringD1Ev+0x21): In function `QString::~QString [in-charge]()':
: undefined reference to `QString::shared_null'
/tmp/ccbke3iw.o(.gnu.linkonce.t._ZN7QStringD1Ev+0x30): In function `QString::~QString [in-charge]()':
: undefined reference to `QStringData::deleteSelf()'
collect2: ld returned 1 exit status
make: *** [w] Error

ЧТО ЭТО ОЗНАЧАЕТ И ЧТО МНЕ ДЕЛАТЬ? СКАЖИТЕ ПОЖАЛУЙСТА :cry:  :cry:  :cry:  :cry:


Название: Ошибка прикомпиляциии
Отправлено: Admin от Декабрь 08, 2004, 23:30
очень похогже на то что ты забыл библиотеку прилинковать

что то типа -lqt3


Название: Ошибка прикомпиляциии
Отправлено: Maksim от Декабрь 08, 2004, 23:50
Обьясни поподробнее пожалуйста : какую библиотеку и как ее прилинковать


Название: Ошибка прикомпиляциии
Отправлено: Admin от Декабрь 09, 2004, 13:47
еее самую

родную QT библиотеку ты подклбчаешь?


Название: Ошибка прикомпиляциии
Отправлено: Hellenna от Декабрь 09, 2004, 22:45
Кроме неподключенной библиотеки, переменная QTDIR в среде правильно выставлена?


Название: Ошибка прикомпиляциии
Отправлено: Admin от Декабрь 10, 2004, 09:39
замени
g++ w.cpp -o w

на

g++ w.cpp -o w -lqt3

и вообще старайся первое время пользоватся qmake


Название: Ошибка прикомпиляциии
Отправлено: Anonymous от Декабрь 23, 2004, 18:42
Вот у меня та же самая ошибка идет... эта прога из книги
"Разработка графического интерфейса с помощью библиотеки Qt3"

и qmake-ом то как раз мы и пользуемся и переменные среды все правильно поставлены

qmake -project
qmake
make

и вываливаются ошибки как было показано выше.

Решил сегодня сам пересобрать qt, а не ставить его из пакета.


Название: Ошибка прикомпиляциии
Отправлено: Admin от Декабрь 23, 2004, 23:01
еще раз для тех кто в танке

у вас библиотека не линкуется

линковка для gcc идет с помощью -lqt3

поставте и все получится


Название: Ошибка прикомпиляциии
Отправлено: Anonymous от Декабрь 24, 2004, 22:02
Цитата: "Admin"
еще раз для тех кто в танке

у вас библиотека не линкуется

линковка для gcc идет с помощью -lqt3

поставте и все получится


Вобщем Admin прав конечно, но для тек то пользуется qmake скажу...
Я вчера собрал qt сам все хозяйство как написано в INSTALL  положил /usr/local/qt, исходник этого простого приложения находился ~/qt/hello.cpp ... Так вот что интересное получается если в директории с исходником выполнить qmake -project && qmake && make, то нифига не получится, ничего не соберется и вывалятся все те же ошибки, если выполнить замену названия файла проекта (восле qmake -project создается qt.pro) на hello.pro и далее qmake && make то все успешно соберется оп - ля... оказывается Makefile который генериуется после qmake зависит от имени файла проета, странно как то, лично я тут логики не вижу

Второе решение проблеммы это переместить каталог с исходником hello.cpp в подкаталог с qt, а конкретнее в /usr/local/hello/hello.cpp. Далее стандартное qmake -project && qmake && make сделает все нормально уже без всякого переименования создаваемого по умолчанию файла проекта. И на стадии линковки подключается как мне кажется много не нужных библиотек  :?

Все таки меня не покидает вопрос такого странного поведения qmake, которая генерит Makefile в зависимости от разных условий разный... бред какой то  :!:


Название: Ошибка прикомпиляциии
Отправлено: Admin от Декабрь 26, 2004, 16:53
Когда я начанал qt b линукс изучать начинал, то у меня такие же глюки лезли.
Такие что гуру руками разводили :)

Так что где то у вас ошибка или что то вы не допоняли