LINUX.ORG.RU

Работа Qt-приложений на сервере


0

2

Есть проблема. Имеется консольное приложение, написанное на Qt. Надо его запустить на сервере (Ubuntu Server, 11.04). При попытке его запуска вылетает ошибка сегментирования:

namikiri@kuroserver:~/amadeo$ ./amadeoexec
Ошибка сегментирования

Как я понял, надо доставлять библиотеки Qt. При попытке установки «libqt4-dev» за ними тащится X11 сервер, pulseaudio и прочая ересь, ибо ставится полностью весь пакет.

Каким образом можно установить базовые библиотеки Qt (qtCore) и остальные, не требующие гуя?

> Ошибка сегментирования

Как я понял, надо доставлять библиотеки Qt.

ЕЯПО, это никак не связано. Если бы не хватало, он бы написал что-то вроде «хочу libQt4.so».

anonymous ()

strace ./amadeoexec

И внимательно читаем, что там получается. Если не понимаете, запустите:
strace ./amadeoexec 2>strace.log и выложите содержимое strace.log на http://paste.org.ru/

Также было бы интересно посмотреть на вывод ldd ./amadeoexec

AITap ★★★★★ ()

Если б не хватало либы, он бы и писал, что не хватает либы. Тут дело в чем-то бругом. Например, пакет был собран в 64битной системе, а у тебя на сервере 32. Ну и т.д. Арзитектуры там разные, еще че.

Zhbert ★★★★★ ()
Ответ на: комментарий от anonymous

Скомпилил HelloWorld. Именно это он и говорит:

namikiri@kuroserver:~$ ./un
./un: error while loading shared libraries: libQtCore.so.4: cannot open shared object file: No such file or directory
namikiri ()
Ответ на: комментарий от Zhbert

Например, пакет был собран в 64битной системе, а у тебя на сервере 32. Ну и т.д. Арзитектуры там разные, еще че.

В этом случае тоже бы писало, что не хватает либы, ну если конечно в бубунте в очередно раз что-нибудь не намудрили.

В общем надо strace смотреть и стек в gdb.

Reset ★★★★★ ()
Ответ на: комментарий от damnemall

После установки libqt4-core «Hello, World» успешно запустился.

Но всё равно, в том проекте ошибка сегментирования.

namikiri ()

Зачем тебе libqt4-dev? Тебе нужно скорее libqt4-core.

Pavval ★★★★★ ()
Ответ на: комментарий от namikiri

> Но всё равно, в том проекте ошибка сегментирования.

Скорее всего, проблема не в библиотеках, в таком случае.

damnemall ()
Ответ на: комментарий от namikiri

Но всё равно, в том проекте ошибка сегментирования.

gdb в руки и вперед.

Pavval ★★★★★ ()
Ответ на: комментарий от Pavval

Выполнил gdb, он мне вообще вон что выдал:

"/home/namikiri/amadeo/amadeoexec": not in executable format: Формат файла не распознан

как блин не распознан если на десктопе запускается?..

namikiri ()
Ответ на: комментарий от namikiri

> как блин не распознан если на десктопе запускается?..

uname -a десктопа в студию.

damnemall ()
Ответ на: комментарий от damnemall
namikiri@series-01:~/development/qt$ uname -a
Linux series-01 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 athlon i386 GNU/Linux
namikiri ()
Ответ на: комментарий от namikiri

Показывай мейкфайл (или чем ты там собирал).

mv ★★★★★ ()

> При попытке установки «libqt4-dev» за ними тащится X11 сервер, pulseaudio и прочая ересь, ибо ставится полностью весь пакет.

Мда, в убунте действительно ужасные зависимости. Подредактируй пакет и выкинь из зависимостей всю лишнюю фигню.

drull ★☆☆☆ ()
Ответ на: комментарий от namikiri

Я или проглядел, или это не тот мейкфайл, которым собирался бинарник, потому что в нём нет директивы для статической линковки.

В любом случае, ось на сервере считает, что ваш бинарник какой-то совершенно неправильный.

mv ★★★★★ ()

Не по FTP случайно заливали? А то были случаи, что в текстовом режиме лили бинарь, со всеми вытекающими...

Diffor ()
Ответ на: комментарий от drull

Все нормально там с зависимостями :) Проверено...

Jetty ★★★★★ ()

убедись что на серв выкладываешь релизный бинарник а не дебажный

VladimirMalyk ★★★★★ ()
Ответ на: комментарий от anonymous

Всем большое спасибо. Проблема была в передаче по FTP: требовался бинарный режим, а клиент по умолчанию передавал в ASCII. Проблема решена, сервер запущен.

namikiri ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.