Как создать самодостаточное приложение под Linux?, (ex. независсимый проект) |
Здравствуйте, гость ( Вход | Регистрация )
Как создать самодостаточное приложение под Linux?, (ex. независсимый проект) |
dimon11782 |
5.5.2010, 19:19
Сообщение
#11
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.4.2010 Пользователь №: 1628 Спасибо сказали: 0 раз(а) Репутация: 0 |
да не нужен мне никакой GTK (я даже не знаю что це таке) - использую опцию -no-gtkstyle
Выполняю команды 1. ./configure -static -prefix /путь к новой папке динамич. qt-версии -no-gtkstyle (например /Qt_static) в ответ выбрал опцию „o“ - чтобы „to use the Open Source Edition“ выбрал 'yes' - „to accept this license offer“ много чего „считается“...заканчивается вроде без ошибок предложением Qt is now configured for building. Just run 'gmake'. Once everything is built, you must run 'gmake install'. Qt will be installed into /Qt_static я его (gmake, gmake install) не выполняю.... после этого слетает имеющийся корректный профиль расположения qmake в QT\qt\bin\qmake – пишет, что “qt version identified by /Qt/qt/bin/qmake is not intalled. run make install”. Выполняю: 2. make -no-gtkstyle заканчивается вроде корректно - “make[2]: Leaving directory `/Qt4.6/qt/demos/browser' make[1]: Leaving directory `/Qt4.6/qt/demos'” 3. make install -no-gtkstyle окончание команды тоже корректное “cp -f -r /Qt4.6/qt/mkspecs/wincewm65professional-msvc2008 /Qt_static/mkspecs/” но нет папки /Qt_static, а ведь она появлялась, но уже не помню из-за каких моих манипуляций – стоко перетыкал команд и “100” раз переустанваливал кути... может все-таки надо выполнять gmake, а не make??? то есть что и откуда надо удалить в линуксе, чтобы полностью подчистить остатки qt после удаления ее основной папки, потому как если я повторно ставлю кути, но в другую, чем прежде, папку, то в его новом профиле все еще висит путь к старому профилю... Дайте пожалуйста четкую последовательность команд для статической сборки в линуксе библиотеки Qt4.6 и проекта (последовательность команд и их опции)...требуемые настройки в проекте можно написать поподробнее... а то я уже 3 дня маюсь с этой проблемой... на другом компьютере при выполнении ./configure -static.... через некоторое время выдается «Basic XLib functionality test failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /Qt_4.6/qt/mkspecs/linux-g++.» что здесь ему не нравиться и как это поправить? SABROG: командой ldd ./имя проекта понял, что надо таскать с собой около 30 (!!!) so-шников из /usr/lib....как-то это многовато, да и нехорошо — надо все-таки статику добивать... |
|
|
Litkevich Yuriy |
5.5.2010, 19:37
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
make -no-gtkstyle make install -no-gtkstyle а вот это что такое?вообще процесс сборки с любыми ключами выглядит так: %QT_SOURCE_TREE% - корневой каталог Qt, со всеми его исходниками и прочими вещами %QT_TARGET_TREE% - созданный руками каталог, где будет Qt cd %QT_TARGET_TREE% %QT_SOURCE_TREE%/configure <тут ключики> -/prefix <путь, куда потом это добро установить по команде make install> Далее два варианта 1) полный ./make ./make install 2) краткий ./qmake ./make sub-src ./make install Префикс должен содержать путь в чистое место, т.е. там не должно быть Qt. Затем пользуешься разными сборками Qt, для своей программы, с помощью выбора соответствующего qmake. Т.е. явно указывая путь к нему, он создаст make-файлы с нужными путями. /путь к новой папке динамич. qt-версии зачем динамической, тыж статику собираешь?
|
|
|
dimon11782 |
5.5.2010, 20:09
Сообщение
#13
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.4.2010 Пользователь №: 1628 Спасибо сказали: 0 раз(а) Репутация: 0 |
что значит "что такое make install -no-gtkstyle"? хочу проинсталлировать "make", а опцию указываю, чтобы этот install опять не уткнулся ошибкой в gtkstyle....
у меня уже голова идет кругом от этой статической сборки: - то есть изначально (cd...) надо "встать" (перейти) в тот каталог, куда я хочу установить статическую версию кутей (допустим ./Qt_static)? - затем: %./Qt4.6/qt%./configure -static -prefix ./Qt_static -no-gtkstyle все ли в этой команде верно? и проценты нужны? проверьте пож-та точно... ./Qt4.6/qt -это папка, где лежит файл configure установленной динамической версии Qt... - далее - что значит "полный" и "краткий"? что лучше и "проще"? допустим делаю: ./make ./make install нужно ли в этих командах задавать опцию -no-gtkstyle? иначе будет опять же ошибка "‘gtkStyle was not declared in this scope"... и это все? каков должен быть результат? в папке ./Qt_static должен появиться свой статический qmake, который я могу задать в качестве профиля в моем приложении и этого будет достаточно для его автономной работы? по поводу "/путь к новой папке динамич. qt-версии" - это я опечатался, а точнее запечатался... |
|
|
Litkevich Yuriy |
6.5.2010, 0:10
Сообщение
#14
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
хочу проинсталлировать "make", а опцию указываю, чтобы этот install опять не уткнулся ошибкой в gtkstyle. а где ты вычитал про такую опцию у make?- то есть изначально (cd...) надо "встать" (перейти) в тот каталог, куда я хочу установить статическую версию кутей (допустим ./Qt_static)? не совсем так, если ты используешь префикс. То ты в текущем каталоге осуществляешь сам процесс сборки. А затем командуешь make install и по этой команде всё, что ты собрал копируется в каталог указанный в качестве префикса.Другой вариант. Префикс не указывать, и соответственно не делать в конце make install. Тогда в текущем каталоге у тебя и будет рабочая собранная Qt. %./Qt4.6/qt%./configure -static -prefix ./Qt_static -no-gtkstyle неверно то, что ты каталог Qt_static засовываешь в текущий. (см. выше выделенное курсивом). И, если мне не изменяет память, запись%./Qt4.6/qt%./configure в линухе довольно бессмысленная. - далее - что значит "полный" и "краткий"? что лучше и "проще"? лучше полный, но собираться будет дольше.нужно ли в этих командах задавать опцию -no-gtkstyle? а нет никакой опции у Makefile, есть в нём только цели. И с чёрточки они точно не начинаютсякаков должен быть результат? в папке ./Qt_static должен появиться свой статический qmake qmake, собственно всегда статически собирается, это особенность Qt. Но если имелось в виду, что он будет отвечать за работу статической версии Qt. То, ДА.Моя рекомендация такова (предположим, что каталог с исходниками Qt изначально находится в /usr/local/Trolltech/Qt-4.6.0)
Т.е. конфигурируем только для релизной статической версию Qt и собираем только основу (без Дизайнера, пирмеров и т.д.). Для отладки пользуемся обычной. |
|
|
dimon11782 |
6.5.2010, 5:33
Сообщение
#15
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.4.2010 Пользователь №: 1628 Спасибо сказали: 0 раз(а) Репутация: 0 |
Litkevich Yuriy: спасибо за столь содержательный ответ - обязательно все попробую....
а не знаете ответа на: "на другом компьютере при выполнении ./configure -static.... через некоторое время выдается «Basic XLib functionality test failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /Qt_4.6/qt/mkspecs/linux-g++.» что здесь ему не нравиться и как это поправить?" |
|
|
Litkevich Yuriy |
6.5.2010, 10:54
Сообщение
#16
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
dimon11782 |
6.5.2010, 19:29
Сообщение
#17
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.4.2010 Пользователь №: 1628 Спасибо сказали: 0 раз(а) Репутация: 0 |
полазею по гуглу и другим поисковикам....
Litkevich Yuriy - сейчас же вернемся к главному: допустим: /Qt_4.6 – моя папка с дистрибутивом кутей /Qt-4.6-static – папка для установки статич. версии последовательно выполнял команды cd /Qt_4.6 md Qt-4.6-static cd Qt-4.6-static /Qt_4.6/qt/configure -static -release -fast -no-gtkstyle вроде все корректно прошло.... далее - а зачем нужна команда ./qmake? в ответ она конечно просто выдает, что ./qmake - это директория и что далее? я сделал cd ./qmake и затем qmake – в этой директории появилась пустая папка release-static...не знаю – надо/не надо было делать cd ./qmake и затем qmake (может именно это Вами имелось ввиду пд командой ./qmake)? make sub-src после часа (!!!) ожидания наконец-то дождался вроде корректного окончания выполнения команды make sub-src – и что? все равно не могу в качестве профиля своего проекта воспользоваться qmake-ом из папки /Qt_4.6/Qt-4.6-static – этот профиль просит сделать make install – см. рисунок – в данном профиле почему-то (???) пути прописаны в папку /usr/local/Trolltech/Qt-4.6.1 – но у меня нет такой папки по такому пути, да и не нужна она мне – насколько я понимаю пути профиля должны подцепляться из /Qt_4.6/Qt-4.6-static... ну я и ввел из папки /Qt_4.6/Qt-4.6-static команду make install (как просит профиль) – в итоге после еще минут 40 ожидания папка /Qt_4.6/Qt-4.6-static раздулась с 500 МВ до 3.8 GB (!!!), вся папка Qt_4.6 весит аж 4.9 GB и плюс ко всему еще установился Qt (уж не знаю какой – статический или нет) в папку /usr/local/Trolltech/Qt-4.6.1 … и теперь у меня всего 20 MB свободного места на диске... и какой из этих всех кутей я могу безболезненно удалить или как правильно выполнить make install(?) - указать путь для инсталляции? ответьте пож-та - чувствую, что осталось немного до решения данной проблемы... |
|
|
Litkevich Yuriy |
7.5.2010, 6:18
Сообщение
#18
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
далее - а зачем нужна команда ./qmake? в ответ она конечно просто выдает, что ./qmake да тут я ошибся, т.к. путь к программе qmake в переменной PATH отсутствует. Поэтому нужно написать так:./bin/qmake При конфигурации с ключом -fast создаются не полные мейкфайлы, а заглушки, и корневой в том числе. Если скомандуем make то сначала выполнится qmake а затем пойдёт полная сборка. Чтобы этого избежать. Мы руками вызываем qmake, он создаст полный корневой мэйкфайл. Затем мы командуем make с указанием конкретной цели в нём (sub-src), чтобы собиралась только эта цель. возможно линуксовый вариант Qt обязательно пытается залезть в некий каталог (/usr/local...). Тут я уже просто не помню. Но если это так, то прийдётся всю процедуру выполнить заново. Перед её выполнением нужно будет выполнить команду make confclean в каталоге /Qt_4.6/Qt-4.6-static А потом сконфигурировать, как и раньше + с ключом -prefix /Qt_4.6/Qt-4.6-static П.С. А что выдаёт вновь собранный /Qt_4.6/Qt-4.6-static/bin/qmake -v ? |
|
|
dimon11782 |
7.5.2010, 19:51
Сообщение
#19
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.4.2010 Пользователь №: 1628 Спасибо сказали: 0 раз(а) Репутация: 0 |
сейчас в своей инсталляции я остановился на этапе окончания команды make sub-src...
теперь я делаю сначала команду make confclean из каталога /Qt_4.6/Qt-4.6-static, а затем из него же все повторяю: /Qt_4.6/qt/configure -static -prefix /Qt_4.6/Qt-4.6-static -release -fast -no-gtkstyle ./bin/qmake make sub-src и это точно будет окончание статической инсталляции или все-таки еще придется делать make install (как этого раньше просил сделать профиль - см. скриншот выше...)? все ли я верно указал в вышеуказанных командах (-prefix с путем может надо указывать после всех опций в конце команды configure?)? Litkevich Yuriy - посмотрите пож-та все внимательно.... |
|
|
Litkevich Yuriy |
7.5.2010, 23:26
Сообщение
#20
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
-prefix с путем может надо указывать после всех опций в конце команды configure? не должно быть разницы.и это точно будет окончание статической инсталляции к сожалению я не могу сказать на верняка. Т.к. под линём я собирал только классическим способом. А по разному только в виндовозе.Я ожидал, что командуя configure в чужом каталоге будет выполнена теневая сборка (как в виндовозе), т.е. все внутренние пути будут указывать на катлог сборки. П.С. Ещё раз повторю свой вопрос: А что выдаёт вновь собранный это важно
/Qt_4.6/Qt-4.6-static/bin/qmake -v ? |
|
|
Текстовая версия | Сейчас: 3.1.2025, 6:13 |