Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: bez_glaz от Октябрь 04, 2011, 13:09



Название: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 04, 2011, 13:09
Доброго дня форумчане!
Такая проблемка у меня на рисовалась.
Значит есть консольное приложение написанное на Qt 4 и есть ALT Lunix консольный, переношу значит все исходники на эту машину, захожу в директорию с проектом и прописываю
Код:
sudo ./multiplexor
на что мне системы после недолго раздумья пишет
Код:
unable to execute ./multiplexor

Права +х ставлю к файлу, захожу в систему под пользователем root, в sudoers то же вроде стоят все права на этого пользователя.
Помогите с проблемкой, может не через sudo надо вообще ??
Заранее спасибо!


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: Пантер от Октябрь 04, 2011, 13:11
1. Прогони ldd ./multiplexor на наличие неудовлетворенных зависимостей.
2. Возможно, ФС примонтирована с опцией, запрещающей запускать что-либо. (не помню точно)


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 04, 2011, 13:17
1. Прогони ldd ./multiplexor на наличие неудовлетворенных зависимостей.
2. Возможно, ФС примонтирована с опцией, запрещающей запускать что-либо. (не помню точно)
1. На запрос
Код:
ldd ./multiplexor
пишет
Код:
not a dynamic executable
- тобишь не динамически исполняемый, что это значит ????
2. Если дело в ФС то как вообще это устронять ?????и где копать ?


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: Пантер от Октябрь 04, 2011, 13:25
Погугли "not a dynamic executable". А исходников нет?


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 04, 2011, 13:37
Погугли "not a dynamic executable". А исходников нет?
исходники есть.


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: Пантер от Октябрь 04, 2011, 13:39
Тогда проще собрать из исходников.


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 04, 2011, 14:04
Тогда проще собрать из исходников.
Мне кажется я что-то не понимаю =\
Проект собран и сам "мульти" находится со всеми файлами проектами в одной папке.


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 04, 2011, 15:27
Потратив сегодняшнее время на борозды интернета, заметил один парадокс.
Но прежде расскажу проблему изначально! Клиент жаловался на то что якобы при запуске приложения (  он работает на той же консольной  ALT Lunix 6.0) пишет ./multiplex: error while loading shared libraries: libQtScript.so.4: cannot open shared object file: No such file or directory .
Думал что решу проблему с помощью добавления не хватающих библиотек в ту же директорию где и сам проект, но столкнулся с вышеупомянутой проблемой
Цитировать
Код:

sudo ./multiplexor

на что мне системы после недолго раздумья пишет
Код:

unable to execute ./multiplexor
Прочитав http://www.prog.org.ru/topic_11242_0.html (http://www.prog.org.ru/topic_11242_0.html) и заюзав команды file и ldd вижу, что ldd выдаёт запись
Код:
not a dynamic executable
, a file выдаёт
Код:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
То есть одна пишет что не динамически, а другая наоборот !!!
Что же делать и как быть ???


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: Пантер от Октябрь 04, 2011, 15:32
libQtScript.so.4 тоже 32-bit?


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: kuzulis от Октябрь 04, 2011, 15:40
Думал что решу проблему с помощью добавления не хватающих библиотек в ту же директорию где и сам проект
Неверно! Альт - это не винда. Так тольку ноль.


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 04, 2011, 15:48
libQtScript.so.4 тоже 32-bit?
Ещё раз повторюсь я "не дошёл до этого момента", сам в толк не пойму как так получается, что у клиента одно пишет у меня другое, и как на зло связатся с ним сейчас не получится по техническим причинам с его стороны, а проблему решить надо.


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 04, 2011, 15:53
Думал что решу проблему с помощью добавления не хватающих библиотек в ту же директорию где и сам проект
Неверно! Альт - это не винда. Так тольку ноль.
А как быть если всё таки окажется дело в библиотеках ???
Как я понял мне надо будит либо сделать статическую линковку, либо "таскать" нужные библиотеке в одной директории и в самой программе подвинчивать? Я правильно понял?


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: kuzulis от Октябрь 04, 2011, 16:01
Цитировать
либо "таскать" нужные библиотеке в одной директории и в самой программе подвинчивать?
1. Либо делать статическую сборку самой Qt4 (а не линковку) и компилить приложение с этой Qt4
2. Либо таскать *.so шки (например в той же директории с исполняемым файлом), но запускать исполняемый файл не напрямую, а через скрипт, в котором
будет устанавливаться путь к *.so шке). см в сторону LD_PRELOAD



Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: Пантер от Октябрь 04, 2011, 16:03
LD_LIBRARY_PATH=. ./prog_name


Название: Re: Qt 4 + ALT Lunix 6.0
Отправлено: bez_glaz от Октябрь 05, 2011, 08:46
Цитировать
либо "таскать" нужные библиотеке в одной директории и в самой программе подвинчивать?
1. Либо делать статическую сборку самой Qt4 (а не линковку) и компилить приложение с этой Qt4
2. Либо таскать *.so шки (например в той же директории с исполняемым файлом), но запускать исполняемый файл не напрямую, а через скрипт, в котором
будет устанавливаться путь к *.so шке). см в сторону LD_PRELOAD


Хммм вроде бы как я понял, статическая или динамическая сборка зависит от библиотек самих, что-то типо
Цитировать
Статические библиотеки: .a, .lib
Динамические библиотеки: .so, .dylib, .dll
И если библиотека требует динамической сборки, то статически проект нельзя собрать ?
И ещё, так называемый "скрипт", это тупо в профайле вписанные библиотеки с путём расположения ?