Запуск программы на qt на компьютере без qt, библиотеки в папку класть или как? |
Здравствуйте, гость ( Вход | Регистрация )
Запуск программы на qt на компьютере без qt, библиотеки в папку класть или как? |
l0ki |
14.11.2010, 12:15
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 25.2.2010 Пользователь №: 1485 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте, у меня нубский вопрос.
Вот я написал программу на qt. Мне теперь надо ее запустить на другом компьютере, где не стоит qt. Какие манипуляции мне надо проделать, чтобы программа запустилась? В windows работает просто положить в папочку с исполняемым файлом qtcore.dll и qtgui.dll (ну еще от mingw dll). Но мне нужна помощь с linux. Я писал программу в Ubuntu 10.04, но я не могу теперь запустить ее на только что установленной Ubuntu 10.10. Мой товарищ попробовал запустить у себя на linux mint - и там без проблем запустилась (отсюда я делаю вывод, что там по умолчанию установлены библиотеки qt). Я пробовал делать как в win, то есть клал libQtCore.so.4.6.2 и libQtGui.so.4.6.2 (из usr/lib) в папочку с бинарником, но когда пытаюсь запустить ничего не происходит, я попробовал из консоли - там пишет . Я посмотрел, что в usr/lib лежат еще файлы libQtCore.so.4 и libQtGui.so.4 которые являются ссылками на libQtCore.so.4.6.2 и libQtGui.so.4.6.2. Я тоже в своей папочек создал ссылки на файлы лежащие тут же, назвал их также, но ничего не изменилось, все та же ошибка. Подскажите что я не так делаю и как все это правильно организовать.
|
|
|
Litkevich Yuriy |
14.11.2010, 13:11
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
В линухе проще Qt установить
|
|
|
kuzulis |
14.11.2010, 13:42
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Могеш в линухе попробовать скомпилить с флагом rpath. Почитай в гугле про это.
|
|
|
l0ki |
14.11.2010, 15:07
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 25.2.2010 Пользователь №: 1485 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата В линухе проще Qt установить То есть мои попытки положить в папочку библиотеки в линуксе точно никак не сработают? Цитата Могеш в линухе попробовать скомпилить с флагом rpath. Почитай в гугле про это. Я может неправильно понял, но вроде написано Цитата -rpath <имя-директории> добавляет директорию в список директорий, в которых ищутся разделяемые библиотеки. Если на компьютере нет бибилиотек qt, то где ему искать?Нельзя ли каким-то образом запихнуть в программу эти библиотеки (наверное как при статической линковке, я в этом не очень разбираюсь к сожалению), и чтобы она была так сказать самодостаточна, хоть это и увеличит ее размеры в разы. |
|
|
Litkevich Yuriy |
14.11.2010, 15:18
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
То есть мои попытки положить в папочку библиотеки в линуксе точно никак не сработают? нужно через ldd настроить пути к библиотекам (подробности ищи по форуму)Если на компьютере нет бибилиотек qt, то где ему искать? ну тыж собрался их сам куда-то положитьвообще для линуксоидов удовлетворять море зависимостей - норма |
|
|
maint |
14.11.2010, 17:34
Сообщение
#6
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
надо собрать статически библиотеку, потом программу. Можно и положить библиотеку. Но если будет другой линух или версия дистрибутива - тады ой. ситуация как в 7 винду тащить софт готовый с ХР скомпиленный какой-то студией
Здравствуйте, у меня нубский вопрос. Вот я написал программу на qt. Мне теперь надо ее запустить на другом компьютере, где не стоит qt. Какие манипуляции мне надо проделать, чтобы программа запустилась? В windows работает просто положить в папочку с исполняемым файлом qtcore.dll и qtgui.dll (ну еще от mingw dll). Но мне нужна помощь с linux. Я писал программу в Ubuntu 10.04, но я не могу теперь запустить ее на только что установленной Ubuntu 10.10. Мой товарищ попробовал запустить у себя на linux mint - и там без проблем запустилась (отсюда я делаю вывод, что там по умолчанию установлены библиотеки qt). Я пробовал делать как в win, то есть клал libQtCore.so.4.6.2 и libQtGui.so.4.6.2 (из usr/lib) в папочку с бинарником, но когда пытаюсь запустить ничего не происходит, я попробовал из консоли - там пишет . Я посмотрел, что в usr/lib лежат еще файлы libQtCore.so.4 и libQtGui.so.4 которые являются ссылками на libQtCore.so.4.6.2 и libQtGui.so.4.6.2. Я тоже в своей папочек создал ссылки на файлы лежащие тут же, назвал их также, но ничего не изменилось, все та же ошибка. Подскажите что я не так делаю и как все это правильно организовать.если разные версии qt - всякое может быть. Скорей всего не сработает. Можно создав ссылочку в /usr/lib или где там, можно зайти в /etc. Там есть файлик ld.so.conf. Запихать туда новый путь и набрать от root команду ldconfig. |
|
|
l0ki |
14.11.2010, 21:03
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 25.2.2010 Пользователь №: 1485 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата Могеш в линухе попробовать скомпилить с флагом rpath. Почитай в гугле про это. Мой g++ говорит про -rpath "g++ unrecognized option", это можно как-то починить или я что-то не так делаю? Цитата нужно через ldd настроить пути к библиотекам (подробности ищи по форуму) Я попробовал сделать как написано здесь Скопировал скрипт
в надежде, что что-то произойдет. Теперь после запуска скрипта у меня требуют уже не qt библиотеки, а libaudio.so.2. Я вообще не представляю, что это за библиотека и каким боком она относится к моей программе. |
|
|
Litkevich Yuriy |
14.11.2010, 21:08
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
l0ki |
14.11.2010, 21:36
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 25.2.2010 Пользователь №: 1485 Спасибо сказали: 0 раз(а) Репутация: 0 |
l0ki, почитай темы: Как создать самодостаточное приложение под Linux? ldd Что нужно для Linux приложения? Спасибо, я посмотрел, но в первой теме все про статическую линковку, это мне кажется сложновато будет. ldd запускал, мне выдает списочек библиотек, где not found qtcore и qtgui. В третьей теме некто пишет, что делает как и я сейчас пытаюсь через скрипт, но с этим скриптом каким-то образом разрастается число библиотек и требует чертову libaudio.so.2 (что это??). Я нашел в интернете утилиту patchelf и пропатчил бинарник ею с опцией rpath и та же фигня, список в ldd разросся в 3 раза и опять требуют libaudio.so.2 Так, ладно, я нашел эту libaudio.so.2, я не знаю зачем она нужна, но я скопировал ее к бинарнику и прога наконец запустилась на машине без qt. Подытоживая, я хочу посоветовать таким же нубам как я (которых тоже пугает статическая сборки qt и программы) самый простой способ запустить программу на компе без qt скопировать скрипт вот из этой статьи в папочку с программой и библиотеками. назвать его имя-программы.sh и запустить его (только в bash, sh ошибку пишет). Да, и всем огромное спасибо за помощь, а то я даже не знал где и как искать решение. |
|
|
Litkevich Yuriy |
14.11.2010, 21:40
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 26.12.2024, 18:37 |