17 / 18 / 1
Регистрация: 03.12.2015
Сообщений: 97
|
|
1 | |
Перенос Qt приложения на другой компьютер (linux)10.07.2017, 20:18. Показов 9000. Ответов 10
Метки нет Все метки)
(
Cоздал небольшое приложение на Qt 5.8.0, из используемого QtCore, QtNetwork и QtSql. Сборка qt установлена не static. На моём компе всё работает.
Делаю следующее: собираю Release приложение, в папку с исполняемым помещаю libQt5Core.so.5.8.0, libQt5Network.so.5.8.0, libQt5Sql.so.5.8.0, папку sqldrivers из плагинов, оттуда же папку platforms. На целевой машине вылетает сегфолт ("Segmentation fault (core dumped)"). Прошу подсказать что я делаю не так и то мне нужно делать.
0
|
|
10.07.2017, 20:18 | |
Ответы с готовыми решениями:
10
Qt5 Перенос приложения на другой компьютер
Перенос приложения с БД на другой компьютер |
![]() |
||||||
10.07.2017, 20:45 | 2 | |||||
Может все же ошибки в коде ?
По поводу переноса: Этого недостаточно, нужно создать симлинки и запускать через программу через шел скрипт что бы "натравить" на папку программы.
А вообще под линукс принято ставить пакеты, а не таскать "либы".
0
|
17 / 18 / 1
Регистрация: 03.12.2015
Сообщений: 97
|
|
10.07.2017, 20:54 [ТС] | 3 |
Ошибки в коде маловероятны, на компе с которого ведётся разработка никак проблем не возникает.
Вашу программу я смотрел, но она как-то странно себя ведёт. Я указываю все поля (в name путь к проге, в lib - /Path/to/Qt/5.8/gcc_64/lib, в plugins /Path/to/Qt/5.8/plugins, to выбираю конечную папку), нажимаю Run, Update, Copy. в окне отображается пункты QtLibs, QtPlugins и QtQml помеченные галочкой, пункты /usr/lib, /lib и Other - не помеченые. В целевую папку копируется только исполняемый файл. Пробовал от рута - результат тот же. Пожалуйста, скажите подробнее, что за шел, какие симлинки создавать и как "натравливать". Да это серверная прога, я хочу её установить куда надо и забыть, а с пакетами разбираться не хочу (мне это представляется очень долгим и сложным)
0
|
![]() |
|
10.07.2017, 21:02 | 4 |
Я привел выше.
Симлинки библиотек Qt. Ну не знаю под линукс я особо не тестировал тут ничем не могу помочь, возможно нужно поковырять код и довести до работоспособности под вашу систему, я же проверял только под Debian x32. Программа должна копировать исполняемый файл и либы из QtLibs, QtPlugins и QtQml вместе с ихними симлинками. Нужно смотреть из этого необходимо и выбирать "руками" перед копированием, тут только экспериментальным путем.
0
|
17 / 18 / 1
Регистрация: 03.12.2015
Сообщений: 97
|
|
10.07.2017, 22:08 [ТС] | 5 |
Ситуация становится просто невероятно интересной! На моём компе, решил пробить программу командой "ldd". Она выдала нужный список библиотек. Сделал тоже самое на сервере, и она мне выдала что программа слинкована статически!!! С передачей всё нормально, другие библотеки кидал на сервер, так же чекал ldd, отображается список (кстати я таким образом выяснил что нужно ещё копировать загадочные "libcui*"). Ещё скопировал (просто файловым менеджером перенёс по ftp) все симлинки под нужные .so, в итоге вылетает сегфолт, но уже без "core dumped".
Наверное, придётся делать статическую сборку Qt, и собирать программу ей.
0
|
![]() |
|
10.07.2017, 22:17 | 6 |
Можете не пробовать - она не видит плагинов.
Добавлено через 50 секунд Ставьте пакет Qt из реп и не морочьте ... А программу из исходников собирайте прямо на сервере.
0
|
17 / 18 / 1
Регистрация: 03.12.2015
Сообщений: 97
|
|
10.07.2017, 22:28 [ТС] | 7 |
Это в самом-самом крайнем случае. Прежде, ещё немного по-долблюсь головой об стену
![]()
0
|
17 / 18 / 1
Регистрация: 03.12.2015
Сообщений: 97
|
|
11.07.2017, 13:29 [ТС] | 9 |
Итак, собрал static сборку qt, собрал ей программу, перемещаю на сервер, а там получаю: cannot execute binary file: Exec format error. Права выставлены 700. Собирал x64, вывод команды uname -a на сервере: Linux ******* 2.6.32-042stab120.20 #1 SMP Fri Mar 10 16:52:50 MSK 2017 x86_64 x86_64 x86_64 GNU/Linux. Что это значит?
0
|
17 / 18 / 1
Регистрация: 03.12.2015
Сообщений: 97
|
|
11.07.2017, 19:28 [ТС] | 11 |
Проблема решена. Дело было в том что передача на сервер шла по ftp в ASCII режиме и файлы повреждались. Выяснилось это когда я пробивал исполнительный файл readelf`ом.
0
|
11.07.2017, 19:28 | |
11.07.2017, 19:28 | |
Помогаю со студенческими работами здесь
11
Перенос приложения с БД на другой компьютер Перенос приложения на другой компьютер Перенос приложения с БД SQLite на другой компьютер База MSSQL и перенос приложения на другой компьютер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |