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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt под Cygwin (Eclipse)  (Прочитано 11880 раз)
Aleksey Chuk
Гость
« : Январь 13, 2006, 14:54 »

Нужно поставить qt под cygwin. Пробовал ставить 3 разных версии Qt (qt-x11-free-3.3.5, qt-x11-opensource-src-4.0.1, qt-3.2.3) Все попытки закончились безуспешно. qt-3.2.3 скачивал с http://kde-cygwin.sourceforge.net/qt3/ Вроде бы она как раз заточена под cygwin. Но всё равно не получил желаемых результатов. Во всех 3-х версиях qt ошибки при сборке разные. Например в последней: при распаковки архива по инструкции в каталоге с qt нет ни makefile ни configure, а при запуске qmake вылетает ошибка что QMAKESPEC не задан и самой папки mkspecs нет. По идее он должен задаваться при конфигурировании (configure -platform cygwin-g++). Подскажите, пожалуйста, кто-нибудь ставил успешно qt на cygwin? Какую версию qt нужно ставить и каким образом?  Конечная цель: использовать Eclipse+(CDT+GDB+Qt) для написания прог на С/С++ под Linux, (вместо Linux стоит cygwin (поставить Linux нет возможности)) все успешно, кроме qt.
Записан
SLiDER
Гость
« Ответ #1 : Январь 13, 2006, 17:24 »

Тут эта тема как-то обсуждалась, но решения, по моему, так и не было найдено. А что вам мешает использовать MinGW?
Записан
joktar
Гость
« Ответ #2 : Январь 13, 2006, 17:29 »

Ставить надо одну из версий под X11,
В Cygwin Setup надо поставить XFree86(включая средства разработки).
platform cygwin-g++ - не имеется, его тебе придется самому делать.

Возможно проще взять qt-win-opensource и пользоватся ей?(либо поставить линукс на эмуляторе).
p.s.
Памяти на машине сколько?проц какой?
Записан
Aleksey Chuk
Гость
« Ответ #3 : Январь 17, 2006, 12:08 »

Проц Duron 700Mhz, 256Mb. Вроде бы уже сам решил данную задачу. Если кому-то интересно, то нужно ставить qt с http://kde-cygwin.sourceforge.net/qt3/. После распаковки, скопировал папку mkspec из другого архива(qt-x11-free-3.3.5). В принципе вся она не нужна, только с теми платформами на которых мы собираемся   использовать qt. QMAKESPEC не задаем.

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

 Предложение с MinGW самому кажется заманчивым. Вроде бы при его использовании всё намного проще получается, но мне была поставлена конкретная задача qt + cygwin, поэтому исхожу из этого. Предложить использовать MinGW не имею возможности (по крайней мере в ближайшее время). Всем спасибо.
Записан
Aleksey Chuk
Гость
« Ответ #4 : Февраль 03, 2006, 16:38 »

После установки qt на cygwin вроде бы все нормально. Т.е. qmake работает(генерит project и makefile). Но после запуска make выходит такая вот ошибка
Код:

$ make
g++  -o qt main.o   -L/usr/X11R6/lib -lXext -lX11
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -lXext
collect2: ld returned 1 exit status
make: *** [qt] Error 1

1. По идее все правильно: -lXext раскрывается до libXext.so. если я правильно понимаю, но .so это linux-вая библиотека, и в cygwin-е ее и быть не должно. Но у него есть libXext.dll (а также libX11.dll и др.) которые он должен использовать. Каким образом их можно подключить.
2. Если из makefile убрать -lXext -lX11, то всё заканчивается следующими ошибками
Код:

$ make
g++  -o qt main.o   -L/usr/X11R6/lib
main.o:main.cpp:(.text+0x81): undefined reference to `QApplication::QApplication(int&, char**)'
main.o:main.cpp:(.text+0x9b): undefined reference to `QString::QString(char const*)'
main.o:main.cpp:(.text+0xe4): undefined reference to `QLabel::QLabel(QString const&, QWidget*,
 char const*, unsigned int)'
main.o:main.cpp:(.text+0x102): undefined reference to `QString::shared_null'
main.o:main.cpp:(.text+0x117): undefined reference to `QStringData::deleteSelf()'
main.o:main.cpp:(.text+0x137): undefined reference to `QApplication::setMainWidget(QWidget*)'
main.o:main.cpp:(.text+0x153): undefined reference to `QApplication::exec()'
main.o:main.cpp:(.text+0x16f): undefined reference to `QApplication::~QApplication()'
main.o:main.cpp:(.text+0x1be): undefined reference to `QApplication::~QApplication()'
main.o:main.cpp:(.text+0x208): undefined reference to `QString::shared_null'
main.o:main.cpp:(.text+0x21a): undefined reference to `QStringData::deleteSelf()'
main.o:main.cpp:(.rdata$_ZTV6QGList[vtable for QGList]+0xc): undefined reference to `QGList::clear()'
main.o:main.cpp:(.rdata$_ZTV6QGList[vtable for QGList]+0x10): undefined reference to `QGList::~QGList()'
main.o:main.cpp:(.rdata$_ZTV6QGList[vtable for QGList]+0x14): undefined reference to `QGList::~QGList()'
main.o:main.cpp:(.rdata$_ZTV6QGList[vtable for QGList]+0x18): undefined reference to
 `QPtrCollection::newItem(void*)
main.o:main.cpp:(.rdata$_ZTV6QGList[vtable for QGList]+0x20): undefined reference to
 `QGList::compareItems(void*, void*)'
main.o:main.cpp:(.rdata$_ZTV6QGList[vtable for QGList]+0x24): undefined reference to
 `QGList::read(QDataStream&, void*&)'
main.o:main.cpp:(.rdata$_ZTV6QGList[vtable for QGList]+0x28): undefined reference to
 `QGList::write(QDataStream&, void*) const'
collect2: ld returned 1 exit status
make: *** [qt] Error 1

В чем имеено здесь проблема? Ругается что нету как раз этих библиотек(libXext, libX11...) или дело в чем то другом (например не та версия, или может требует заменить пользователя Улыбающийся ...)? Еще ему нужны библиотеки qt (типа libqt, libqt-mt но есть только cygqt-mt.dll)ю
У кого есть хоть какие-то мысли и предположения- напишите. И кто-нибудь работал с qt под cygwin-ом? Заранее благодарю!!!
Записан
Aleksey Chuk
Гость
« Ответ #5 : Февраль 06, 2006, 15:40 »

Уже Сам разобрался с данной проблемой. Если кого-то заинтересует ? отвечу.
Записан
Rainbow
Гость
« Ответ #6 : Февраль 06, 2006, 18:55 »

Желательно написать прям здесь.
Записан
Aleksey Chuk
Гость
« Ответ #7 : Февраль 08, 2006, 18:11 »

Как я уже писал, удалось поставить только qt3.2.3 c http://kde-cygwin.sourceforge.net/qt3/ Там есть исходники, а есть уже готовые бинарники. Бинарники просто распаковываются по нужным директориям и уже можно использовать qt. Значит designer, qmake и т.д. работают. Правда сгенерированые qmake-ом Makefile-ы практически всегда нужно подправлять, то он забудет -lqt добавить, то пути поиска. Кстати в qt нет библиотеки libqt.a или libqt-mt.a, есть cygqt-mt-3.dll (лежит в bin), а на нее символическая ссылка. Только вот самое главное, когда пытаешь собрать свою прогу, запускаешь make- он пишет ошибки типа ... undefined reference to ... Насколько я понял это проблема как раз с cygqt-mt-3.dll, что-то ему в ней не нравиться.  Пришлось собирать самому из исходников. Установки по их инсткукции прошла успешно, НО!!! Здесь всё наоборот, не работает ни designer ни assistant... но фурычит qmake, и прога из Makefile собирается. Но не все они потом запускаются, здесь выскакивает windows-кая ошибка типа: "The application failed to initialize properly 0xc0000005)..." Про нее написано на http://kde-cygwin.sourceforge.net/kde3/faq.php#0xc000005 (т.е. на том же сайте). Исправить ее можно, и тогда и designer и проги запускаться будут. С прогами проще, нужно скачать скрипт (на сайте есть ссылка), а потом добавлять в Makefile-ах одну строку. Но чтобы исправить designer и остальное, нужно их полностью пересобирать (уже с использованием скрипта). Эта проблема насколько я понял только в старых версиях, до 3.3.3. В новых должно быть исправлено.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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