LINUX.ORG.RU

Вопрос по CMake + Qt and Shared library


0

0

Доброго времени суток. Вот такая ситуация:

Есть qt исходник, который загружает библиотеку:

libq4wine.setFileName("libq4wine-core");

  if (!libq4wine.load()){
	libq4wine.load();
  }

Есть CMakeLists.txt в котором описывается сборка библиотеки и ее линковка:

ADD_LIBRARY( q4wine-core SHARED ${Q4WINE-LIB-SOURCES} ${Q4WINE-LIB-HEADERS} )
...
TARGET_LINK_LIBRARIES( q4wine ${QT_LIBRARIES} q4wine-core)

Все работает шикарно, если libq4wine-core.so устанавливается в /usr/lib но нифига не работает, если ее установить в /usr/lib/q4wine/

Собственно оно и понятно, ld просто не может ее найти.

Вопрос заключается именно в этом: как программно указать откуда загружать библиотеку?

Не используя или изменяя: LD_LIBRARY_PATH, /etc/ld.so.conf, ldconfig

> Все работает шикарно, если libq4wine-core.so устанавливается в /usr/lib но нифига не работает, если ее установить в /usr/lib/q4wine/

А в чём проблема поставить её в /usr/lib?
Вот это посмотри, может пожет в твоих желаниях:
http://www.cmake.org/cmake/help/cmake2.6docs.html#command:install

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

Проблема не у меня. Проблема у пакетомейкеров :)

[code]
Есть несколько претензий к файлам.

1. libq4wine-core.so не должна ставиться в /usr/lib/. Надо
в /usr/lib/q4wine/.
http://ru.opensuse.org/Packaging/Shared_Library_Packaging_Policy
(конкретно, раздел Exceptions)
http://www.debian.org/doc/debian-policy/ch-sharedlibs.html
[/code]

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