Russian Qt Forum
Май 04, 2024, 04:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка прикомпиляциии  (Прочитано 11635 раз)
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
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Декабрь 08, 2004, 23:30 »

очень похогже на то что ты забыл библиотеку прилинковать

что то типа -lqt3
Записан
Maksim
Гость
« Ответ #2 : Декабрь 08, 2004, 23:50 »

Обьясни поподробнее пожалуйста : какую библиотеку и как ее прилинковать
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #3 : Декабрь 09, 2004, 13:47 »

еее самую

родную QT библиотеку ты подклбчаешь?
Записан
Hellenna
Гость
« Ответ #4 : Декабрь 09, 2004, 22:45 »

Кроме неподключенной библиотеки, переменная QTDIR в среде правильно выставлена?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #5 : Декабрь 10, 2004, 09:39 »

замени
g++ w.cpp -o w

на

g++ w.cpp -o w -lqt3

и вообще старайся первое время пользоватся qmake
Записан
Anonymous
Гость
« Ответ #6 : Декабрь 23, 2004, 18:42 »

Вот у меня та же самая ошибка идет... эта прога из книги
"Разработка графического интерфейса с помощью библиотеки Qt3"

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

qmake -project
qmake
make

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

Решил сегодня сам пересобрать qt, а не ставить его из пакета.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #7 : Декабрь 23, 2004, 23:01 »

еще раз для тех кто в танке

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

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

поставте и все получится
Записан
Anonymous
Гость
« Ответ #8 : Декабрь 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
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #9 : Декабрь 26, 2004, 16:53 »

Когда я начанал qt b линукс изучать начинал, то у меня такие же глюки лезли.
Такие что гуру руками разводили Улыбающийся

Так что где то у вас ошибка или что то вы не допоняли
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 22.