crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Как создать самодостаточное приложение под 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  


Цитата(dimon11782 @ 5.5.2010, 23:19) *
make -no-gtkstyle
Цитата(dimon11782 @ 5.5.2010, 23:19) *
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-файлы с нужными путями.

Цитата(dimon11782 @ 5.5.2010, 23:19) *
/путь к новой папке динамич. 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  


Цитата(dimon11782 @ 6.5.2010, 0:09) *
хочу проинсталлировать "make", а опцию указываю, чтобы этот install опять не уткнулся ошибкой в gtkstyle.
а где ты вычитал про такую опцию у make?

Цитата(dimon11782 @ 6.5.2010, 0:09) *
- то есть изначально (cd...) надо "встать" (перейти) в тот каталог, куда я хочу установить статическую версию кутей (допустим ./Qt_static)?
не совсем так, если ты используешь префикс. То ты в текущем каталоге осуществляешь сам процесс сборки. А затем командуешь make install и по этой команде всё, что ты собрал копируется в каталог указанный в качестве префикса.
Другой вариант. Префикс не указывать, и соответственно не делать в конце make install. Тогда в текущем каталоге у тебя и будет рабочая собранная Qt.

Цитата(dimon11782 @ 6.5.2010, 0:09) *
%./Qt4.6/qt%./configure -static -prefix ./Qt_static -no-gtkstyle
неверно то, что ты каталог Qt_static засовываешь в текущий. (см. выше выделенное курсивом). И, если мне не изменяет память, запись
%./Qt4.6/qt%./configure в линухе довольно бессмысленная.

Цитата(dimon11782 @ 6.5.2010, 0:09) *
- далее - что значит "полный" и "краткий"? что лучше и "проще"?
лучше полный, но собираться будет дольше.
Цитата(dimon11782 @ 6.5.2010, 0:09) *
нужно ли в этих командах задавать опцию -no-gtkstyle?
а нет никакой опции у Makefile, есть в нём только цели. И с чёрточки они точно не начинаются

Цитата(dimon11782 @ 6.5.2010, 0:09) *
каков должен быть результат? в папке ./Qt_static должен появиться свой статический qmake
qmake, собственно всегда статически собирается, это особенность Qt. Но если имелось в виду, что он будет отвечать за работу статической версии Qt. То, ДА.

Моя рекомендация такова (предположим, что каталог с исходниками Qt изначально находится в /usr/local/Trolltech/Qt-4.6.0)
cd /usr/local/Trolltech
md Qt-4.6-static
сd Qt-4.6-static
/usr/local/Trolltech/Qt-4.6.0/configure -static -release -fast -no-gtkstyle
./qmake
make sub-src

Т.е. конфигурируем только для релизной статической версию 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, 9:33) *
что здесь ему не нравиться и как это поправить?"
не сталкивался, однако гугл даёт достаточно много результатов. Надо читать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


Цитата(dimon11782 @ 6.5.2010, 23:29) *
далее - а зачем нужна команда ./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  


Цитата(dimon11782 @ 7.5.2010, 23:51) *
-prefix с путем может надо указывать после всех опций в конце команды configure?
не должно быть разницы.

Цитата(dimon11782 @ 7.5.2010, 23:51) *
и это точно будет окончание статической инсталляции
к сожалению я не могу сказать на верняка. Т.к. под линём я собирал только классическим способом. А по разному только в виндовозе.

Я ожидал, что командуя configure в чужом каталоге будет выполнена теневая сборка (как в виндовозе), т.е. все внутренние пути будут указывать на катлог сборки.

П.С. Ещё раз повторю свой вопрос:
Цитата(Litkevich Yuriy @ 7.5.2010, 10:18) *
А что выдаёт вновь собранный
/Qt_4.6/Qt-4.6-static/bin/qmake -v
?
это важно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 3.1.2025, 6:13