Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: LinuxFanUNIX в Apr 25, 2009, 11:14



Титла: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 11:14
Добър ден. Тук съм отново с поредния си (надявам се и последен) проблем в който решение не мога да намеря поради липса на някаква грешка или нещо за което да се захвана както и липса на логично обяснение.

Та проблема е следният:
Със Slackware 12.2 съм. На сайта на TrollTech има графичен инсталатор който инсталира библиотеки, хедъри, IDE-то (QtCreator) за Qt4 и т.н. И дърпам си аз пакета, инсталирам го и накрая като се опитам си пусна някое Qt4 приложение ми изкарва грешка за липсващи библиотеки. При опит за компилация на програма от рода на "Hello world!" ми казва че още в #include-то съм добавил библиотеки които не съществуват.

Бихте ли ми препоръчали какво да направя в тази ситуация?

Благодаря предврарително!


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: Ivshti в Apr 25, 2009, 11:51
Свали и инсталирай qt4 пакета от слаки, така няма как да ти дава липсващи библиотеки, но при компилация ще ти дава проблеми, защото е инсталирана в /opt. Ъпгрейдни си qt-то с пакета от slackware-current /който е на qt4/, и за да не се счупи кде-то инсталирай qt-3.....-opt1.tgz от kde3-compat директорията (май ще я намериш в extra/).


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 11:56
Свали и инсталирай qt4 пакета от слаки, така няма как да ти дава липсващи библиотеки, но при компилация ще ти дава проблеми, защото е инсталирана в /opt. Друг начин е, за който не мога да ти гарантирам, че няма да ти счупи KDE-то, е да си изтеглиш qt4 библиотеката от slackware-current, да го инсталираш на място qt3 пакета (ъпдейтвайки го), и на място на qt3 да инсталираш qt3-opt /май беше в няква директория kde3-compat/.
Търсейки в packages.slackware.it изобщо няма пакет с име qt4. Няма ли пакет който да си се инсталира нормално, съответно - qmake, qt-designer, etc. в /usr/bin а библиотеките в /usr/lib/, include файловете в /usr/include и да няма проблеми.

Между другото забравих да спомена че пробвах и с компилиране на сорса, обаче след 3-часовото компилиране и успешното изпълнение на gmake install просто пак дава същите признаци на "неинсталиран" qt4.

Та има ли някакъв начин, или не - всичко да тръгне?  :)


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: Ivshti в Apr 25, 2009, 11:58
Редактирах си поста, бях направил няколко грешки относно имената на пакетите. В slackware-current пакета е:
http://mirrors.unixsol.org/slackware/slackware-current/slackware/l/qt-r948357-i486-1.tgz
Важно е да инсталираш и:
http://mirrors.unixsol.org/slackware/slackware-current/extra/kde3-compat/qt3-3.3.8b-i486-opt1.tgz
Иначе няма да ти тръгне KDE-то.
Преди да инсталираш тези 2 пакета не забравяй да:
removepkg qt4 qt
И това го правиш без стартирано KDE, да няма аномалии, въпреки че на теория, няма да има, защото библиотеките са заредени в RAM-а.


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: KoIoSoS в Apr 25, 2009, 12:11
Гледам по подразбиране се инсталира в /opt/qtsdk-2009.02.В този случай трябва да добавиш в /etc/ld.so.conf
Код
GeSHi (Bash):
  1. /opt/qtsdk-2009.02/lib
След което се изпълнява
Код
GeSHi (Bash):
  1. ldconfig
за да се ъпдейтне кеша на лоудъра.
Можеш да си добавиш в /etc/profile ред 17 изглеждащ така:
Код
GeSHi (Bash):
  1. PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
/opt/qtsdk-2009.02/bin и да изглежда така:
Код
GeSHi (Bash):
  1. PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/qtsdk-2009.02/bin"
При инсталиране на друго място, /opt/qtsdk-2009.02 трябва да се замести.
Иначе горните отговори са също решение , така да се каже native решението.


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 12:39
Гледам по подразбиране се инсталира в /opt/qtsdk-2009.02.В този случай трябва да добавиш в /etc/ld.so.conf
Код
GeSHi (Bash):
  1. /opt/qtsdk-2009.02/lib
След което се изпълнява
Код
GeSHi (Bash):
  1. ldconfig
за да се ъпдейтне кеша на лоудъра.
Можеш да си добавиш в /etc/profile ред 17 изглеждащ така:
Код
GeSHi (Bash):
  1. PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
/opt/qtsdk-2009.02/bin и да изглежда така:
Код
GeSHi (Bash):
  1. PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/qtsdk-2009.02/bin"
При инсталиране на друго място, /opt/qtsdk-2009.02 трябва да се замести.
Иначе горните отговори са също решение , така да се каже native решението.
Сега вече се пускат приложенията, но като се опитам да ги компилирам веднага ми дъни грешки още в include-натите файлове:

Код
GeSHi (Bash):
  1. root@darkstar:~/Projects/Test# make
  2. g++ -c -pipe -Wall -W -O2  -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT -I/usr/lib/qt/mkspecs/default -I. -I. -I/usr/lib/qt/include -o main.o main.cpp
  3. main.cpp:1:30: error: QtGui/QApplication: Няма такъв файл или директория
  4. In file included from main.cpp:2:
  5. mainwindow.h:4:29: error: QtGui/QMainWindow: Няма такъв файл или директория
  6. In file included from main.cpp:2:
  7. mainwindow.h:7: error: expected constructor, destructor, or type conversion before ‘class’
  8. mainwindow.h:14: error: expected constructor, destructor, or type conversion before ‘class’
  9. main.cpp: In function ‘int main(int, char**)’:
  10. main.cpp:6: error: ‘QApplication’ was not declared in this scope
  11. main.cpp:6: error: expected `;' before ‘a’
  12. main.cpp:7: error: ‘MainWindow’ was not declared in this scope
  13. main.cpp:7: error: expected `;' before ‘w
  14. main.cpp:8: error: ‘w’ was not declared in this scope
  15. main.cpp:9: error: ‘a’ was not declared in this scope
  16. main.cpp: At global scope:
  17. main.cpp:4: warning: unused parameter ‘argc’
  18. main.cpp:4: warning: unused parameter ‘argv’
  19. make: *** [main.o] Error 1
  20.  


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: b2l в Apr 25, 2009, 12:44
Добре де на 11 и 13 ред имаш правописни грешки. Потърси ги къде са в кода и ги поправи за 12 ред вече не знам.


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 12:46
Добре де на 11 и 13 ред имаш правописни грешки. Потърси ги къде са в кода и ги поправи за 12 ред вече не знам.
Не са правописни грешки, просто липсват библиотеките. Под мандраците се компилира, но тук - не.  :(


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: b2l в Apr 25, 2009, 12:58
Добре де на 11 и 13 ред имаш правописни грешки. Потърси ги къде са в кода и ги поправи за 12 ред вече не знам.
Не са правописни грешки, просто липсват библиотеките. Под мандраците се компилира, но тук - не.  :(

Сигурно си прав :)


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: KoIoSoS в Apr 25, 2009, 13:42
-I/usr/lib/qt/include
Трябва да е /opt/qtsdk-2009.02/qt/include в случай че сме инсталирали там.
Трябва да се промени и стойноста на $QTDIR променливата ,може само за компилацията
export QTDIR=/opt/qtsdk-2009.02/qt


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 13:47
-I/usr/lib/qt/include
Трябва да е /opt/qtsdk-2009.02/qt/include в случай че сме инсталирали там.
???


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 14:27
-I/usr/lib/qt/include
Трябва да е /opt/qtsdk-2009.02/qt/include в случай че сме инсталирали там.
Трябва да се промени и стойноста на $QTDIR променливата ,може само за компилацията
export QTDIR=/opt/qtsdk-2009.02/qt
Пак не става...


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: lunarvalleys в Apr 25, 2009, 14:34
бе какви са тия глупости, за какво му е да бара qt3..


LinuxfanUNIX.. >

http://slackbuilds.org/repository/12.2/libraries/qt4/

и въобще, ако ще инсталираш нещо в Слак, ползвай слакбилд скриптовете от http://slackbuilds.org/

ето ти и много хубав инструмент> http://www.sbopkg.org/

3rd party пакети (от Slacky.eu, linuxpackages.net и т.н.) те съветвам да не ползваш


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: KoIoSoS в Apr 25, 2009, 14:50
бе какви са тия глупости, за какво му е да бара qt3..


LinuxfanUNIX.. >

http://slackbuilds.org/repository/12.2/libraries/qt4/

и въобще, ако ще инсталираш нещо в Слак, ползвай слакбилд скриптовете от http://slackbuilds.org/

ето ти и много хубав инструмент> http://www.sbopkg.org/

3rd party пакети (от Slacky.eu, linuxpackages.net и т.н.) те съветвам да не ползваш
бе какви са тия глупости, qt3 си е невредимо.


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 14:58
Последно кое да използвам...?


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: lunarvalleys в Apr 25, 2009, 15:10
което решиш ползвай.. системата си е твоя все пак

може би няма да е лошо да се позаинтересуваш и сам, коя алтернатива е по-добра за тебе  :)

аз готови пакети от 3rd party хранилища не ползвам. въпрос на избор. както и slapt-get и swaret не харесвам. пак въпрос на избор.

само да те предупредя, че ако решиш да деинсталираш нещо със slapt-get може много да омажеш системата -- защо? защото в 3rd party хранилища като гореспоменатото slacky.eu, хората се опитват да сложат и информация за зависимостите на всеки пакет.. slapt-get я чете тази инфо и ти оправя автоматично зависимостите на пакет, който искаш да инсталираш от хранилището на slacky.eu

да, обаче когато ползваш slapt-get да махнеш такъв пакет, много често програмата решава да ти деинсталира и още един куп неща

весело, нали?

slackbuilds.org има "благословията" на Патрик Волкердинг  :) :) :)

иначе готови пакети, които аз бих ползвал са от тук>

http://www.slackware.com/~alien/slackbuilds/

все пак е хостнато на сайта на Слак, а AlienBOB помага на Патрик


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: KoIoSoS в Apr 25, 2009, 15:58
което решиш ползвай.. системата си е твоя все пак

може би няма да е лошо да се позаинтересуваш и сам, коя алтернатива е по-добра за тебе  :)

аз готови пакети от 3rd party хранилища не ползвам. въпрос на избор. както и slapt-get и swaret не харесвам. пак въпрос на избор.

само да те предупредя, че ако решиш да деинсталираш нещо със slapt-get може много да омажеш системата -- защо? защото в 3rd party хранилища като гореспоменатото slacky.eu, хората се опитват да сложат и информация за зависимостите на всеки пакет.. slapt-get я чете тази инфо и ти оправя автоматично зависимостите на пакет, който искаш да инсталираш от хранилището на slacky.eu

да, обаче когато ползваш slapt-get да махнеш такъв пакет, много често програмата решава да ти деинсталира и още един куп неща

весело, нали?

slackbuilds.org има "благословията" на Патрик Волкердинг  :) :) :)

иначе готови пакети, които аз бих ползвал са от тук>

http://www.slackware.com/~alien/slackbuilds/

все пак е хостнато на сайта на Слак, а AlienBOB помага на Патрик
Подкрепям.


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 19:09

slackbuilds.org има "благословията" на Патрик Волкердинг  :) :) :)

иначе готови пакети, които аз бих ползвал са от тук>

http://www.slackware.com/~alien/slackbuilds/

все пак е хостнато на сайта на Слак, а AlienBOB помага на Патрик
Да ама там няма това което ми трябва...  ;)


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: KoIoSoS в Apr 25, 2009, 19:31
-I/usr/lib/qt/include
Трябва да е /opt/qtsdk-2009.02/qt/include в случай че сме инсталирали там.
Трябва да се промени и стойноста на $QTDIR променливата ,може само за компилацията
export QTDIR=/opt/qtsdk-2009.02/qt
Не е на хубаво да се цитирам ,но пък не е за много хубаво ,така че се компенсира.
Та, хубаво да смени QTDIR , но след като се компилира.
Пускаме в /opt/qtsdk-2009.02/qt
Код
GeSHi (Bash):
  1. ./configure
  2. make
  3.  
И спираме до тук, без make install.


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 20:41
-I/usr/lib/qt/include
Трябва да е /opt/qtsdk-2009.02/qt/include в случай че сме инсталирали там.
Трябва да се промени и стойноста на $QTDIR променливата ,може само за компилацията
export QTDIR=/opt/qtsdk-2009.02/qt
Не е на хубаво да се цитирам ,но пък не е за много хубаво ,така че се компенсира.
Та, хубаво да смени QTDIR , но след като се компилира.
Пускаме в /opt/qtsdk-2009.02/qt
Код
GeSHi (Bash):
  1. ./configure
  2. make
  3.  
И спираме до тук, без make install.
Пак ли 3 часа...  :(  :o


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 21:30
Пак не стана...  :( :( :(

Други идеи?


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 25, 2009, 22:08
Май си оправих проблема.  ;D

Възможното решение на проблема е:
1. Инсталиране на GUI инсталатора
2. Преместване на /opt/[QTDIR]/qt/bin/qmake в /usr/bin/qmake-qt4 иначе има големи конфликти

Сега би трябвало всичко да е ок. Вече повечето програми тръгват, само на някои дава Segmentation fault. Сега остана само един проблем. Когато в приложението има да се покаже иконка в трея, не го прави, а си прави пас. Защо прави този кю-так така. Просто си прави място в трея, но си остава празно.

Иначе като цяло, почти всичко тръгва, с изключение на горните двете. ;)

Та как да оправя това с трея?

Благодаря предварително!

Edit:

Забелязах че когато има QIcon и в трея, и в ComboBox-а си остава празно. Еех... Показва се даже и в Example на TrollTech който показва как се прави SystemTray.


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 26, 2009, 00:32
Тъй като не мога без поддръжката на QIcon инсталирах от SlackBuild-а на Alien qt-4.4, оправям си настройки и пр. Като изпълнявам вече компилиран изпълним файл - всичко е ок, трея си е трей, иконата - икона. Обаче след компилация и опит за изпълнение на новия изпълним файл - Segmentation fault и дотук.

Някой има ли логично обяснение защо става така, и вероятно логичен отговор как да се оправи дадената ситуация?

Благодаря предварително!


Титла: Re: Инсталация на Qt4 в Slackware 12.2
Публикувано от: LinuxFanUNIX в Apr 26, 2009, 14:37
Някой да знае нещо по въпроса ???