Всем привет, я тут балуюсь, пишу прогу на Qt
у меня на локалке всё идеально пашет, но вот косяк, пытаюсь поместить на сервер, а там, извечная тема с линковкой Qt приложений.
В Линуксе, как представителе высшей ступени эволюции считывает шареды из специальной папки, а текущую напросто игнорит(зло).
У меня конечно же нет рута и я не могу править конфиги да и редактирование конфигов в моем случае лишний геморой который нафиг не нужен.
Соотвественно устанавливать пакеты я тоже не могу, есть только 3 .so файла которые не дают мне спокойно спать по ночам, все остальные либы на месте.
Я вижу 2 варианта:
1 перекомпиляция, (всё правлю руками, без qtCreater поэтому некоторые манулы совершенно не понимаю что куда писать)
2 это обёртка в виде баш скрипта, тут самое интересное решение
LD_LIBRARY_PATH = не работает
chrpath -d ./start.cgi = не совсем понимаю о чем речь, но тоже не работает.
что ещё можно придумать?
Cannot open shared object file без рута
конкретики по библиотекам добавьте
и на сервере ls -l для *.so, которые с собой таскаете...
и проверьте, чтоб в флагах монтирования раздела с которого запускаете не стояло noexec
Запускаю на сервере, в первую очередь интересны qt-шные библиотеки, они все находятся в той же папке (/home***):
ldd ./start.cgi|grep libQ
./start.cgi: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./start.cgi)
./start.cgi: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./start.cgi)
libQtSql.so.4 => not found
libQtGui.so.4 => not found
libQtCore.so.4 => not found
LS -L
-rwxrwxrwx 1 hostuser hostuser 253168 Apr 8 13:17 libQtSql.so*
на всех 777 сейчас, executable
В моем разделе нет noexec ибо до подключения Qt всё отлично жевалось.
./start.cgi: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./start.cgi)
./start.cgi: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./start.cgi)
судя по этому трабла ещё и в том, что libstdc++ старая на сервере.
ldd ./start.cgi|grep libQ
а теперь тоже самой только с предварительным export LD_LIBRARY_PATH="/путь/к/либам/Qt/:$LD_LIBRARY_PATH".
ЗЫ:вообще это не дело без root'а добавлять в систему какие-то доп. бинарники, а тем более библиотеки.
ЗЗЫ: пользуйтесь тегами code
Супер!!! кстати там ещё один маленький косяк случился, который я сначала не обратил внимание это .so.4
изначально думал, что это какое-то специальное обозначение, а оказывается существует такой файл :)
с версией libstdc++. вопрос аналогично решен переносом благо либа меньше метра весит :)
Огромное спасибо тебе за помощь в решении моего вопроса :)