Russian Qt Forum
Ноябрь 24, 2024, 04:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 4 + ALT Lunix 6.0  (Прочитано 6101 раз)
bez_glaz
Гость
« : Октябрь 04, 2011, 13:09 »

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

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

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Октябрь 04, 2011, 13:11 »

1. Прогони ldd ./multiplexor на наличие неудовлетворенных зависимостей.
2. Возможно, ФС примонтирована с опцией, запрещающей запускать что-либо. (не помню точно)
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
bez_glaz
Гость
« Ответ #2 : Октябрь 04, 2011, 13:17 »

1. Прогони ldd ./multiplexor на наличие неудовлетворенных зависимостей.
2. Возможно, ФС примонтирована с опцией, запрещающей запускать что-либо. (не помню точно)
1. На запрос
Код:
ldd ./multiplexor
пишет
Код:
not a dynamic executable
- тобишь не динамически исполняемый, что это значит Непонимающий?
2. Если дело в ФС то как вообще это устронять Непонимающий??и где копать ?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Октябрь 04, 2011, 13:25 »

Погугли "not a dynamic executable". А исходников нет?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
bez_glaz
Гость
« Ответ #4 : Октябрь 04, 2011, 13:37 »

Погугли "not a dynamic executable". А исходников нет?
исходники есть.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Октябрь 04, 2011, 13:39 »

Тогда проще собрать из исходников.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
bez_glaz
Гость
« Ответ #6 : Октябрь 04, 2011, 14:04 »

Тогда проще собрать из исходников.
Мне кажется я что-то не понимаю =\
Проект собран и сам "мульти" находится со всеми файлами проектами в одной папке.
Записан
bez_glaz
Гость
« Ответ #7 : Октябрь 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 и заюзав команды 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
То есть одна пишет что не динамически, а другая наоборот !!!
Что же делать и как быть Непонимающий
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #8 : Октябрь 04, 2011, 15:32 »

libQtScript.so.4 тоже 32-bit?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #9 : Октябрь 04, 2011, 15:40 »

Думал что решу проблему с помощью добавления не хватающих библиотек в ту же директорию где и сам проект
Неверно! Альт - это не винда. Так тольку ноль.
Записан

ArchLinux x86_64 / Win10 64 bit
bez_glaz
Гость
« Ответ #10 : Октябрь 04, 2011, 15:48 »

libQtScript.so.4 тоже 32-bit?
Ещё раз повторюсь я "не дошёл до этого момента", сам в толк не пойму как так получается, что у клиента одно пишет у меня другое, и как на зло связатся с ним сейчас не получится по техническим причинам с его стороны, а проблему решить надо.
Записан
bez_glaz
Гость
« Ответ #11 : Октябрь 04, 2011, 15:53 »

Думал что решу проблему с помощью добавления не хватающих библиотек в ту же директорию где и сам проект
Неверно! Альт - это не винда. Так тольку ноль.
А как быть если всё таки окажется дело в библиотеках Непонимающий
Как я понял мне надо будит либо сделать статическую линковку, либо "таскать" нужные библиотеке в одной директории и в самой программе подвинчивать? Я правильно понял?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #12 : Октябрь 04, 2011, 16:01 »

Цитировать
либо "таскать" нужные библиотеке в одной директории и в самой программе подвинчивать?
1. Либо делать статическую сборку самой Qt4 (а не линковку) и компилить приложение с этой Qt4
2. Либо таскать *.so шки (например в той же директории с исполняемым файлом), но запускать исполняемый файл не напрямую, а через скрипт, в котором
будет устанавливаться путь к *.so шке). см в сторону LD_PRELOAD

Записан

ArchLinux x86_64 / Win10 64 bit
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #13 : Октябрь 04, 2011, 16:03 »

LD_LIBRARY_PATH=. ./prog_name
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
bez_glaz
Гость
« Ответ #14 : Октябрь 05, 2011, 08:46 »

Цитировать
либо "таскать" нужные библиотеке в одной директории и в самой программе подвинчивать?
1. Либо делать статическую сборку самой Qt4 (а не линковку) и компилить приложение с этой Qt4
2. Либо таскать *.so шки (например в той же директории с исполняемым файлом), но запускать исполняемый файл не напрямую, а через скрипт, в котором
будет устанавливаться путь к *.so шке). см в сторону LD_PRELOAD


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


Страница сгенерирована за 0.06 секунд. Запросов: 22.