LinuxForum.Fans
Тема

Потерялась библиотека

Автор: Variag 7 сообщений 1503 просмотров
#328081

Здравствуйте!
У меня образовалась проблема:
Я скачал библиотеку, согласно приложенному README, запустил makefile, темсамым скомпилировал ее, при помощи приложенного же скрипта записал ее в папку /usr/lib/
Запустил приложение, которое должно эту библиотеку использовать и получил:

text
error while loading shared libraries: libcyusb.so: cannot open shared object file: No such file or directory

Хотя библиотека на месте есть.
Подскажите, с чем это может быть связано:
прикладываю текст make-файла:

text
all:
    g++ -fPIC -o lib/libcyusb.o -c lib/libcyusb.c
    g++ -shared -Wl,-soname,libcyusb.so -o lib/libcyusb.so.1 lib/libcyusb.o -l usb-1.0 -l rt
    cd lib; ln -sf libcyusb.so.1 libcyusb.so
    rm -f lib/libcyusb.o
clean:
    rm -f lib/libcyusb.so lib/libcyusb.so.1
help:
    @echo    'make        would compile and create the library and create a link'
    @echo    'make clean    would remove the library and the soft link to the library (soname)'

и скрипта:

text
#!/bin/bash

# This is the main installer for CyUSB Suite for Linux # Run this script as root (superuser). # (C) Cypress Semiconductor Company / ATR-LABS ([url=http://www.atr-labs.com]www.atr-labs.com[/url]) - 2012 # Author - V. Radhakrishnan #

CURDIR=`pwd` echo "Your current directory is $CURDIR. This is where the cyusb_suite software will be installed..." A=`whoami`

create_udev_rules() { echo "# Cypress USB driver for FX2 and FX3 (C) Cypress Semiconductor Corporation / ATR-LABS" > configs/88-cyusb.rules echo "# Rules written by V. Radhakrishnan ( rk@atr-labs.com )" >> configs/88-cyusb.rules echo "# Cypress USB vendor ID = 0x04b4" >> configs/88-cyusb.rules

echo 'KERNEL=="*", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="add", ATTR{idVendor}=="04b4", MODE="666", TAG="cyusb_dev", RUN+="'"/usr/bin/cy_renumerate.sh A"'"' >> configs/88-cyusb.rules echo 'KERNEL=="*", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="remove", TAG=="cyusb_dev", RUN+="'"/usr/bin/cy_renumerate.sh R"'"' >> configs/88-cyusb.rules }

if [ $A != 'root' ]; then echo "You have to be root to run this script" exit 1; fi

create_udev_rules cp configs/cyusb.conf /etc/ cp configs/88-cyusb.rules /etc/udev/rules.d/ make

# Remove stale versions of the libcyusb library rm -f /usr/lib/libcyusb.so* /usr/local/lib/libcyusb.so*

# Copy the libcyusb library into the system library folders. cp lib/libcyusb.so.1 /usr/local/lib ln -s /usr/local/lib/libcyusb.so.1 /usr/local/lib/libcyusb.so cp lib/libcyusb.so.1 /usr/lib ln -s /usr/lib/libcyusb.so.1 /usr/lib/libcyusb.so

cp $CURDIR/configs/cy_renumerate.sh /usr/bin chmod 777 /usr/bin/cy_renumerate.sh cd $CURDIR/gui_src/ qmake make clean make cp $CURDIR/bin/cyusb_linux /usr/local/bin

#328083

man ldconfig, man ld-linux. Какой дистрибутив? Сейчас так программы не устанавливают, для этого есть репозитории, либо вам самостоятельно нужно сделать пакет, который и поставите. А так будет у вас не система, а неуправляемая свалка файлов.

#328084

Спасибо,
Дистрибутив Mageia KDE
Сейчас попробую Ваши команды. Но этих библиотек нет и не может быть в репозиториях - это библиотеки для программирования USB контроллеров фирмы Cypress. Собственно, с их сайта все и скачано.

#328188

"Variag⇓" написал:
Но этих библиотек нет и не может быть в репозиториях
Как вариант собирать используя Checkinstall
#328213
Variag написал:
Спасибо,
Дистрибутив Mageia KDE
Сейчас попробую Ваши команды. Но этих библиотек нет и не может быть в репозиториях - это библиотеки для программирования USB контроллеров фирмы Cypress. Собственно, с их сайта все и скачано.

А не в /usr/local/lib Ваша библиотека установилась?

#328214

"Alexey_1⇓" написал:
А не в /usr/local/lib Ваша библиотека установилась?
Если верить установочному скрипту, то да. А для того, чтобы установилось в /usr/local/lib64 ТС должен этот самый скрипт исправить (заменить в нём все /usr/local/lib на /usr/local/lib64).
#328226

Спсибо за ответы.
Библиотека, согласно скрипту, установилась и в /usr/local/lib и в /usr/lib.
А помог ldconfig. О чем еще раз спасибо.

Войдите или зарегистрируйтесь, чтобы ответить.