metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-05-09 01:32 am

фиг там спать с этими вашими линуксами

А вот скажите мне, как в линуксе ищутся shared object, то бишь библиотеки?
Не могу понять, как получается, что там где я собрал Qt креатором проект, он работает, а на другом дебиане - нет. Пишет, что не может загрузить libQtSql.so.4

ldd выдает отличающиется списки используемых либ:

libQtSql.so.4 => not found
libQtGui.so.4 => not found
libQtNetwork.so.4 => not found
libQtCore.so.4 => not found


libQtSql.so.4 => /home/user/qtsdk-2009.02/qt/lib/libQtSql.so.4 (0xb7ebe000)
libQtGui.so.4 => /home/user/qtsdk-2009.02/qt/lib/libQtGui.so.4 (0xb74a4000)
libQtNetwork.so.4 => /home/user/qtsdk-2009.02/qt/lib/libQtNetwork.so.4 (0xb7178000)
libQtCore.so.4 => /home/user/qtsdk-2009.02/qt/lib/libQtCore.so.4 (0xb6f25000)

По аналогии с вендой - скопировал нужные либы в папку к проге - фиг, все равно не видит :)


Установка qt либ из репозитория не помогла - ldd теперь их видит, но прога не работает - версия либ (4.2) раньше той на которой я прогу собирал (4.5)

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

А вот если я захочу вместо Qt4.2 поставить Qt4.5, сломается что нибудь в системе или нет? И как это сделать, не поломав голову менеджеру пакетов?

[identity profile] qehgt.livejournal.com 2009-05-08 10:44 pm (UTC)(link)
LD_LIBRARY_PATH установи

[identity profile] nolar.livejournal.com 2009-05-08 10:54 pm (UTC)(link)
Коммент выше, или поправь /etc/ld.so.conf + /etc/ld.so.conf.d/*.conf
И man ldconfig в тему этого

[personal profile] alll 2009-05-08 11:50 pm (UTC)(link)
Емнип, когда-то помогала перезагрузка ldconfig, если библиотеки только что установленные.

[identity profile] max-posedon.livejournal.com 2009-05-09 02:58 am (UTC)(link)
LD_LIBRARY_PATH=. (умолчание в windows), это пиздец и антигуманно, посмотрите на msvc-шный runtime, для его такое отключили, и не просто так.

[identity profile] ykaliuta.livejournal.com 2009-05-09 07:22 am (UTC)(link)
вообще man ld.so

[identity profile] blacklion.livejournal.com 2009-05-09 07:24 am (UTC)(link)
По аналогии с вендой - скопировал нужные либы в папку к проге - фиг, все равно не видит :)
Гы-гы.
Ищет он в том, что при старте системы сказали ldconfig'у и там, где ты поставил переменную окружения LD_LIBRARY_PATH

[identity profile] zamotivator.livejournal.com 2009-05-10 09:33 am (UTC)(link)
Вместо Qt4.2 поставить Qt4.5

Ничего не сломается. У Qt ABI совместимость в рамках мажорной ветки