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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt и Solaris  (Прочитано 10825 раз)
Dark Elf
Гость
« : Февраль 08, 2006, 17:24 »

Добрый день!

У меня тут возник следующий вопрос:

Проект на Qt собирается под Windows, Linux, FreeBSD, QNX
Но под Solaris программа упорно не хочет собираться.

На всех платформах я делаю одно и то же:
1.Прописывание переменных
2.qmake
3.make

и везде всё собирается прекрасно, спасибо Trolltech

Под Solaris же линкер не видит функций и классов Qt (не жалуется на отсуствие бибилиотеки а именно не видит в ней функций и классов).

Тут я так понимаю сидят специалисты по Qt не могли бы Вы мне объяснить в чём дело и как с этим бороться?

Заранее благодарен за ответ
Записан
Hellenna
Гость
« Ответ #1 : Февраль 09, 2006, 09:11 »

Можете подробенее написать какие-именно сообщения об ошибках получаете?
Единственное что приходит в голову сразу - не прописаны QTDIR или прописаны не правильно...
Записан
Dark Elf
Гость
« Ответ #2 : Февраль 09, 2006, 13:35 »

Спасибо за ответ

Вот мой shell скрипт для сборки:

QTDIR=/opt/sfw
QMAKESPEC=solaris-g++
PATH=$PATH:/opt/sfw/bin:/usr/sfw/bin:/usr/ccs/bin
export QTDIR QMAKESPEC PATH
qmake
make

Чтобы не утомлять Вас приведу лишь самое начало вывода (дальше всё одинаково):

.................................................................................................................
Undefined                       first referenced
 symbol                             in file
main                                /opt/sfw/lib/gcc/i386-pc-solaris2.10/3.4.2/crt1.o
QWidget::setPaletteBackgroundPixmap(QPixmap const&).obj/moc_form1.o
QWidget::setAutoMask(bool)          .obj/moc_form1.o
QWidget::imStartEvent(QIMEvent*)     .obj/moc_form1.o
QWidget::fontChange(QFont const&)   .obj/moc_form1.o
QWidget::contextMenuEvent(QContextMenuEvent*)      .obj/moc_form1.o
QMainWindow::show()                 .obj/moc_form1.o
..............................................................................................................
Записан
Hellenna
Гость
« Ответ #3 : Февраль 09, 2006, 14:57 »

Цитата: "Dark Elf"


Чтобы не утомлять Вас приведу лишь самое начало вывода (дальше всё одинаково):

К сожалению, с Solaris имела дело довольно давно, но вроде никаких проблем с qt не было.
а qt`шные примеры собрались нормально?
Еще: что-то подобное у меня было в линуксе когда в описание класса добавляла Q_OBJECT, проблема лечилась шаманством - в pro-файле менялся порядок компиляции исходников, потом все лишнее удалялось и собиралось заново. Удивительно, но после таких манипуляций все работало   :shock:
Записан
Dark Elf
Гость
« Ответ #4 : Февраль 09, 2006, 18:16 »

Я так понимаю что нужно добавить какую-то библиотеку которую qmake не добавил автоматически в makefile

У вас случайно не сохранилось makefile - именно та часть где добавляются библиотеки (-lqt-mt -lXext -lX11 ...)?

Если можно то хотел бы увидеть именно эту часть
Записан
Sergeich
Гость
« Ответ #5 : Февраль 09, 2006, 18:34 »

Странно все это. У меня проблем с соляркой никогда не возникало. Правда, я прописывал переменные окружения в .profile. И, кстати не вижу определения LD_LIBRARY_PATH
Записан
Dark Elf
Гость
« Ответ #6 : Февраль 09, 2006, 19:02 »

Цитата: "Sergeich"
Странно все это. У меня проблем с соляркой никогда не возникало. Правда, я прописывал переменные окружения в .profile. И, кстати не вижу определения LD_LIBRARY_PATH


И Вам спасибо за ответ

А не кинете ли примерчик где и как её прописывать?
Записан
Sergeich
Гость
« Ответ #7 : Февраль 09, 2006, 19:50 »

после
PATH=$PATH:/opt/sfw/bin:/usr/sfw/bin:/usr/ccs/bin
вставь
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib
Записан
Dark Elf
Гость
« Ответ #8 : Февраль 09, 2006, 20:31 »

К сожалению не помогло Грустный

А что можно ещё сделать?
Записан
Sergeich
Гость
« Ответ #9 : Февраль 09, 2006, 21:23 »

Я просто добавил в /etc/profile строчки
Код:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/X/lib
export PATH=$PATH:/usr/local/bin:/usr/X/bin

export QTDIR=/usr/local/qt
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/doc/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

И все заработало. На восьмой солярке.
Записан
Dark Elf
Гость
« Ответ #10 : Февраль 09, 2006, 23:35 »

Все равно не получается Грустный

Правда у меня OpenSolaris 11 + Companion CD от 9-й версии Solaris может от этого проблемы...
Записан
Sergeich
Гость
« Ответ #11 : Февраль 10, 2006, 01:23 »

Мда... Я работаю на восьмой соляре на санях. Даже не знаю че посоветовать.  Грустный Вообще-то линкер ругается тока на моченые обжи (или на все?). Может проблема с мочиловкой? Кутю пересобрать не пробовал?
Записан
Hellenna
Гость
« Ответ #12 : Февраль 13, 2006, 09:47 »

Цитата: "Dark Elf"


У вас случайно не сохранилось makefile - именно та часть где добавляются библиотеки (-lqt-mt -lXext -lX11 ...)?

Если можно то хотел бы увидеть именно эту часть

к сожалению ничего не сохранилось, вспомнила что солярис был 9, проблем не было.

а всетаки - примеры кутешные собрались? если да, то можно попробовать подсмотреть у них makefile...

Если будет время, попробую поставить солярис (правда, 10) и посмотреть что не работает, очень вы заинтересовали... Подмигивающий
Записан
Dark Elf
Гость
« Ответ #13 : Февраль 13, 2006, 18:04 »

примеры Qt также не собираются... сдаётся мне что Qt был собран с помощью CC а я вот с gcc пытаюсь свою прогу собрать как и на всех остальных платформах...

добавлено спустя 5 часов 25 минут:

 Кстати никто не подскажет где скачать CC Compiler для Solaris?
Записан
Dark Elf
Гость
« Ответ #14 : Март 04, 2006, 19:36 »

Выкачал исходники Qt собрал и использовал вместо тех что были - помогло Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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