Конфигурация через cmake.

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

BratSinot
Сообщения: 812
ОС: Slackware64

Конфигурация через cmake.

Сообщение BratSinot »

Здравствуйте! Вот такая беда, при конкурировании через cmake и установке какой нибудь программы, Slackware не видит shared библиотеку. Например это было в OpenAL, Alut, InitNG. Из-за чего это?
Спасибо сказали:
Аватара пользователя
zenwolf
Бывший модератор
Сообщения: 3139
Статус: Страшный и злой
ОС: Slackware..Salix..x86_64

Re: Конфигурация через cmake.

Сообщение zenwolf »

В каждом случае отдельно смотреть.
1) Библиотеки ложаться в /usr/locale/lib, это происходит если вы при компиляции явно не указали путь к /usr ( например --prefix=/usr). Путь к /usr/bin должен быть указан в системной переменной PATH.
2) Библиотеки действительно нет в системе. Запускаем в терминале нужную программу и смотрим чего не хватает, устанавливаем нужный пакет с необходимой библиотекой.
3) Если библиотеки легли "правильно" и есть в системе возможно не хватает линков. То есть запустить в терминале, почитать какой библиотеки
нет и сделать линк от "родной" (пример : ln -f libcxxxxx.so.0.0.0 libcxxxxx.so.0)

P.s. крайне мало информации о вашей проблеме, напишите подробней

Quae videmus quo dependet vultus. (лат) - То, что мы видим, зависит от того, куда мы смотрим.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

zenwolf писал(а):
18.04.2010 09:51
В каждом случае отдельно смотреть.
1) Библиотеки ложаться в /usr/locale/lib, это происходит если вы при компиляции явно не указали путь к /usr ( например --prefix=/usr). Путь к /usr/bin должен быть указан в системной переменной PATH.
2) Библиотеки действительно нет в системе. Запускаем в терминале нужную программу и смотрим чего не хватает, устанавливаем нужный пакет с необходимой библиотекой.
3) Если библиотеки легли "правильно" и есть в системе возможно не хватает линков. То есть запустить в терминале, почитать какой библиотеки
нет и сделать линк от "родной" (пример : ln -f libcxxxxx.so.0.0.0 libcxxxxx.so.0)

P.s. крайне мало информации о вашей проблеме, напишите подробней

Это с чего мало? Больше физически нет. Все библиотеки в системе есть, если что.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Конфигурация через cmake.

Сообщение drBatty »

BratSinot писал(а):
18.04.2010 18:41
Это с чего мало? Больше физически нет. Все библиотеки в системе есть, если что.

телепатов здесь нет. если что...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
zov
Сообщения: 255

Re: Конфигурация через cmake.

Сообщение zov »

-Wl,-rpath ?
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

Блин, еще раз. Если:

Код: Выделить всё

mkdir build && cd build && cmake .. && make && make install

То не находит библиотеку. Переделаем вопрос: Какой путь установки надо указывать? И как это сделать в cmake?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Конфигурация через cmake.

Сообщение drBatty »

BratSinot писал(а):
19.04.2010 18:27
То не находит библиотеку. Переделаем вопрос: Какой путь установки надо указывать? И как это сделать в cmake?

простите, но на такой общий вопрос можно дать только один ответ: man cmake. там много букв про это (только что посмотрел). Но вам уже подробно ответили:
zenwolf писал(а):
18.04.2010 09:51
В каждом случае отдельно смотреть.
1) Библиотеки ложаться в /usr/locale/lib, это происходит если вы при компиляции явно не указали путь к /usr ( например --prefix=/usr). Путь к /usr/bin должен быть указан в системной переменной PATH.
2) Библиотеки действительно нет в системе. Запускаем в терминале нужную программу и смотрим чего не хватает, устанавливаем нужный пакет с необходимой библиотекой.
3) Если библиотеки легли "правильно" и есть в системе возможно не хватает линков. То есть запустить в терминале, почитать какой библиотеки
нет и сделать линк от "родной" (пример : ln -f libcxxxxx.so.0.0.0 libcxxxxx.so.0)

P.s. крайне мало информации о вашей проблеме, напишите подробней

вопрос: какие библиотеки, и как вы их ставили?
полный список: ldconfig -p (используйте фильтр, их много!)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Конфигурация через cmake.

Сообщение Crazy »

попробуй прописать вручную, через
CMAKE_INCLUDE_PATH,
CMAKE_LIBRARY_PATH,
PKG_CONFIG_PATH

Desipere in loco
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

drBatty писал(а):
19.04.2010 19:52
вопрос: какие библиотеки, и как вы их ставили?

Я это в первом сообщении сказал. OpenAL, Alut, InitNG все через cmake и все с такой проблемой.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Конфигурация через cmake.

Сообщение bormant »

Почитайте на slackbuilds.org, например, http://slackbuilds.org/.../OpenAL/OpenAL.SlackBuild
...
cmake \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX}
...

И разберитесь там уже, кто и что должен видеть. Как я понял, сторонний софт должен увидеть OpenAL? Что говорит ldd на бинарник этого стороннего софта про OpenAl? Почему ldd не знает про новую библиотеку (нет в списке ldconfig -p, не запускали ldconfig после установки библиотек или ни разу ещё не перегружались (хинт: grep ldconfig /etc/rc.d/rc.M)); поставили библиотеку по пути, о котором нет упоминаний в /etc/ld.so.conf) или это софт сам что-то где-то пытается найти и загрузить?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Конфигурация через cmake.

Сообщение drBatty »

BratSinot писал(а):
20.04.2010 13:05
вопрос: какие библиотеки, и как вы их ставили?

Я это в первом сообщении сказал. OpenAL, Alut, InitNG все через cmake и все с такой проблемой.

с какой????
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

drBatty писал(а):
20.04.2010 16:54
BratSinot писал(а):
20.04.2010 13:05
вопрос: какие библиотеки, и как вы их ставили?

Я это в первом сообщении сказал. OpenAL, Alut, InitNG все через cmake и все с такой проблемой.

с какой????

Епрст! Ты первое сообщение вообще видел?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Конфигурация через cmake.

Сообщение drBatty »

BratSinot писал(а):
24.04.2010 17:46
с какой????

Епрст! Ты первое сообщение вообще видел?

BratSinot писал(а):
17.04.2010 22:24
Здравствуйте! Вот такая беда, при конкурировании через cmake и установке какой нибудь программы, Slackware не видит shared библиотеку. Например это было в OpenAL, Alut, InitNG. Из-за чего это?

а... shared...
значит static видит? и то - радует. А shared не видит? Вы издеваетесь?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

drBatty писал(а):
25.04.2010 00:12
а... shared...
значит static видит? и то - радует. А shared не видит? Вы издеваетесь?

.so которая.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Конфигурация через cmake.

Сообщение drBatty »

BratSinot писал(а):
22.05.2010 11:17
.so которая.

дык понятно, что не DLL
а вот - КАКАЯ - непонятно.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
RocksLinux
Сообщения: 223
ОС: Slackware

Re: Конфигурация через cmake.

Сообщение RocksLinux »

Доброго времени суток!
Тема весьма странная, вернее весьма странное её развитие.
Изначально, я подумал, что у человека не получается собрать ПО, cmake не находит требуемые библиотеки. В связи с этим, человек попросил объяснить, как указать cmake, месторасположение библиотек. А оказалось, что в процессе запуска не находятся(ится) библиотеки(ка). Т.е. процесс компиляции и установки проходит успешно, а после запуска какой-то программы (чего и кого запускают, я тоже не понял), выдаётся сообщение о отсутствие (не нахождении) какой-то библиотеки. При этом, меня удивляет позиция BratSinot, он отказывается не точно показать вывод, а даже назвать библиотеку, только сокает.
Ладно, не говорит. Как я понимаю, если компиляция произошла успешно, но при запуске не находиться библиотека, то соответственно некорректно указаны «переменные». Требуется проверить месторасположение библиотеки и внести его в /etc/ld.so.conf. По идеи, вероятно, после этого всё заработает нормально. Можно запустить программу, следующим образом. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/dir/ && exec /usr/bin/program
Проверить, какие библиотеки, должны использоваться программой ldd /usr/bin/программа.
Человек написали, что требуется сделать, ответа нет.
.so — это тип библиотеки. Название библиотеки, выглядит например так, libopenal.so.0.1
Так я и не понял:
а) почему нельзя назвать библиотеку
б) выполнялись ли рекомендации, и каковы результаты
в) почему нельзя показать вывод
г) почему нельзя подробно описать весь процесс, с начала, с «выводами» и всеми подробностями.
Пример.
Я загрузил исходники такой-то программы, скомпилировал и установил так — процесс прошёл успешно, без ошибок.
Далее я запускаю то-то, получаю следующее сообщение (показать).
«Знать, что мы знаем то, что мы знаем, и что мы не знаем того, чего мы не знаем — это и есть истинное знание». //Конфуций\\
120 минут классики рока
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

Короче ничего из выше предложеного не работает. Сейчас emerald скомпилировал та-же песня:

Код: Выделить всё

emerald: error while loading shared libraries: libemeraldengine.so.0: cannot open shared object file: No such file or directory

Так-что это не из-за конфигурации через Cmake.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Конфигурация через cmake.

Сообщение bormant »

что говорит
# ldd emerald
?
Спасибо сказали:
Аватара пользователя
zenwolf
Бывший модератор
Сообщения: 3139
Статус: Страшный и злой
ОС: Slackware..Salix..x86_64

Re: Конфигурация через cmake.

Сообщение zenwolf »

BratSinot писал(а):
24.05.2010 16:05
Короче ничего из выше предложеного не работает. Сейчас emerald скомпилировал та-же песня:

Код: Выделить всё

emerald: error while loading shared libraries: libemeraldengine.so.0: cannot open shared object file: No such file or directory

Так-что это не из-за конфигурации через Cmake.

а в /usr/lib заглядывали ? возможно там есть libemeraldengine.so.0.0.0, если есть делаем линк на libemeraldengine.so.0 (см. второй пост) :)
вы при компиляции /usr указали ?
Quae videmus quo dependet vultus. (лат) - То, что мы видим, зависит от того, куда мы смотрим.
Спасибо сказали:
Аватара пользователя
RocksLinux
Сообщения: 223
ОС: Slackware

Re: Конфигурация через cmake.

Сообщение RocksLinux »

Голова не работает!
Он показал хоть какой-то вывод. :ohmy:
Хорошо бы узнать версию Вашей операционной системы.
Если у Вас не получается собирать ПО из исходников, почему Вы не пользуетесь Slackbuild'ами.

1.su - && ldd emerald && exit
2.find /lib -name 'libemeraldengine.so*'
3.find /lib64 -name 'libemeraldengine.so*'
4.find /usr/lib -name 'libemeraldengine.so*'
5.find /usr/local -name 'libemeraldengine.so*'

Не может быть такого. Либо её нет в системе, либо Вы её неизвестно куда дели (система не знает о её существование), либо требуется создать символическую ссылку. Вам СТО раз уже писали — ПРОВЕРЬТЕ!

http://slackbuilds.org/repository/12.2/desktop/emerald/
http://slak.homelinux.org/index.php?start=...p;file=#results
«Знать, что мы знаем то, что мы знаем, и что мы не знаем того, чего мы не знаем — это и есть истинное знание». //Конфуций\\
120 минут классики рока
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

Narod, temy mojno zakryt'. Ja tyt yje poshamanil, i ono nachinalo rabotat'.
Спасибо сказали:
Аватара пользователя
RocksLinux
Сообщения: 223
ОС: Slackware

Re: Конфигурация через cmake.

Сообщение RocksLinux »

:crazy:
«Знать, что мы знаем то, что мы знаем, и что мы не знаем того, чего мы не знаем — это и есть истинное знание». //Конфуций\\
120 минут классики рока
Спасибо сказали:
Аватара пользователя
zenwolf
Бывший модератор
Сообщения: 3139
Статус: Страшный и злой
ОС: Slackware..Salix..x86_64

Re: Конфигурация через cmake.

Сообщение zenwolf »

BratSinot писал(а):
25.05.2010 20:02
Narod, temy mojno zakryt'. Ja tyt yje poshamanil, i ono nachinalo rabotat'.

так, а в чём подшаманили ?
Quae videmus quo dependet vultus. (лат) - То, что мы видим, зависит от того, куда мы смотрим.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Конфигурация через cmake.

Сообщение BratSinot »

zenwolf писал(а):
26.05.2010 14:13
BratSinot писал(а):
25.05.2010 20:02
Narod, temy mojno zakryt'. Ja tyt yje poshamanil, i ono nachinalo rabotat'.

так, а в чём подшаманили ?

Pravka /etc/ld.so.conf and ldconf.
Спасибо сказали: