Russian Qt Forum
Апрель 24, 2024, 06:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перестала загружаться библиотека  (Прочитано 5704 раз)
qtист
Гость
« : Февраль 12, 2016, 10:07 »

Создаю библиотеку - пусть будет называться sam.so
В головной программе загружаю, работаю с ней.
Всё хорошо, всё замечательно.
В какой-то момент времени(в какой не понял) она перестала
загружаться, вывел ошибку:
Код
C++ (Qt)
Cannot load library sam.so:( libsam.so: cannot open shared object file: no such file or directory)

Makefile:
Код:
#############################################################################
# Makefile for building: libsam.so.1.0.0
# Generated by qmake (2.01a) (Qt 4.8.4) on: ?? ??? 11 18:59:06 2016
# Project:  sam.pro
# Template: lib
# Command: /usr/lib/i386-linux-gnu/qt4/bin/qmake -o Makefile sam.pro
#############################################################################

####### Compiler, tools and options

CC            = gcc
CXX           = g++
DEFINES       = -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
INCPATH       = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4 -I. -I.
LINK          = g++
LFLAGS        = -Wl,-O1 -shared -Wl,-soname,sam.so
LIBS          = $(SUBLIBS)  -L/usr/lib/i386-linux-gnu -L/usr/local/lib -lnet -lpcap -lQtNetwork -lQtCore -lpthread
AR            = ar cqs
RANLIB        =
QMAKE         = /usr/lib/i386-linux-gnu/qt4/bin/qmake
TAR           = tar -cf
COMPRESS      = gzip -9f
COPY          = cp -f
SED           = sed
COPY_FILE     = $(COPY)
COPY_DIR      = $(COPY) -r
STRIP         = strip
INSTALL_FILE  = install -m 644 -p
INSTALL_DIR   = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE      = rm -f
SYMLINK       = ln -f -s
DEL_DIR       = rmdir
MOVE          = mv -f
CHK_DIR_EXISTS= test -d
MKDIR         = mkdir -p

####### Output directory

OBJECTS_DIR   = ./

####### Files

SOURCES       = mythreadlk.cpp \
mythreadrec.cpp \
sam.cpp \
workrec.cpp \
myftp.cpp moc_mythreadlk.cpp \
moc_mythreadrec.cpp \
moc_workrec.cpp
OBJECTS       = mythreadlk.o \
mythreadrec.o \
sam.o \
workrec.o \
myftp.o \
moc_mythreadlk.o \
moc_mythreadrec.o \
moc_workrec.o
DIST          = /usr/share/qt4/mkspecs/common/unix.conf \
/usr/share/qt4/mkspecs/common/linux.conf \
/usr/share/qt4/mkspecs/common/gcc-base.conf \
/usr/share/qt4/mkspecs/common/gcc-base-unix.conf \
/usr/share/qt4/mkspecs/common/g++-base.conf \
/usr/share/qt4/mkspecs/common/g++-unix.conf \
/usr/share/qt4/mkspecs/qconfig.pri \
/usr/share/qt4/mkspecs/features/qt_functions.prf \
/usr/share/qt4/mkspecs/features/qt_config.prf \
/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
/usr/share/qt4/mkspecs/features/default_pre.prf \
/usr/share/qt4/mkspecs/features/release.prf \
/usr/share/qt4/mkspecs/features/default_post.prf \
/usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
/usr/share/qt4/mkspecs/features/warn_on.prf \
/usr/share/qt4/mkspecs/features/qt.prf \
/usr/share/qt4/mkspecs/features/unix/thread.prf \
/usr/share/qt4/mkspecs/features/moc.prf \
/usr/share/qt4/mkspecs/features/resources.prf \
/usr/share/qt4/mkspecs/features/uic.prf \
/usr/share/qt4/mkspecs/features/yacc.prf \
/usr/share/qt4/mkspecs/features/lex.prf \
/usr/share/qt4/mkspecs/features/include_source_dir.prf \
sam.pro
QMAKE_TARGET  = sam
DESTDIR       =
TARGET        = sam.so
TARGETA       = libsam.a
TARGETD       = sam.so
TARGET0       = libsam.so
TARGET1       = libsam.so.1
TARGET2       = libsam.so.1.0

first: all
####### Implicit rules

.SUFFIXES: .o .c .cpp .cc .cxx .C

.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"

####### Build rules

all: Makefile  $(TARGET)

$(TARGET):  $(OBJECTS) $(SUBLIBS) $(OBJCOMP) 
-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP)
-ln -s $(TARGET) $(TARGET0)
-ln -s $(TARGET) $(TARGET1)
-ln -s $(TARGET) $(TARGET2)



staticlib: $(TARGETA)

$(TARGETA):  $(OBJECTS) $(OBJCOMP)
-$(DEL_FILE) $(TARGETA)
$(AR) $(TARGETA) $(OBJECTS)

Makefile: sam.pro  /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \
/usr/share/qt4/mkspecs/common/linux.conf \
/usr/share/qt4/mkspecs/common/gcc-base.conf \
/usr/share/qt4/mkspecs/common/gcc-base-unix.conf \
/usr/share/qt4/mkspecs/common/g++-base.conf \
/usr/share/qt4/mkspecs/common/g++-unix.conf \
/usr/share/qt4/mkspecs/qconfig.pri \
/usr/share/qt4/mkspecs/features/qt_functions.prf \
/usr/share/qt4/mkspecs/features/qt_config.prf \
/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
/usr/share/qt4/mkspecs/features/default_pre.prf \
/usr/share/qt4/mkspecs/features/release.prf \
/usr/share/qt4/mkspecs/features/default_post.prf \
/usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
/usr/share/qt4/mkspecs/features/warn_on.prf \
/usr/share/qt4/mkspecs/features/qt.prf \
/usr/share/qt4/mkspecs/features/unix/thread.prf \
/usr/share/qt4/mkspecs/features/moc.prf \
/usr/share/qt4/mkspecs/features/resources.prf \
/usr/share/qt4/mkspecs/features/uic.prf \
/usr/share/qt4/mkspecs/features/yacc.prf \
/usr/share/qt4/mkspecs/features/lex.prf \
/usr/share/qt4/mkspecs/features/include_source_dir.prf \
/usr/lib/i386-linux-gnu/libQtNetwork.prl \
/usr/lib/i386-linux-gnu/libQtCore.prl
$(QMAKE) -o Makefile sam.pro
/usr/share/qt4/mkspecs/common/unix.conf:
/usr/share/qt4/mkspecs/common/linux.conf:
/usr/share/qt4/mkspecs/common/gcc-base.conf:
/usr/share/qt4/mkspecs/common/gcc-base-unix.conf:
/usr/share/qt4/mkspecs/common/g++-base.conf:
/usr/share/qt4/mkspecs/common/g++-unix.conf:
/usr/share/qt4/mkspecs/qconfig.pri:
/usr/share/qt4/mkspecs/features/qt_functions.prf:
/usr/share/qt4/mkspecs/features/qt_config.prf:
/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
/usr/share/qt4/mkspecs/features/default_pre.prf:
/usr/share/qt4/mkspecs/features/release.prf:
/usr/share/qt4/mkspecs/features/default_post.prf:
/usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
/usr/share/qt4/mkspecs/features/warn_on.prf:
/usr/share/qt4/mkspecs/features/qt.prf:
/usr/share/qt4/mkspecs/features/unix/thread.prf:
/usr/share/qt4/mkspecs/features/moc.prf:
/usr/share/qt4/mkspecs/features/resources.prf:
/usr/share/qt4/mkspecs/features/uic.prf:
/usr/share/qt4/mkspecs/features/yacc.prf:
/usr/share/qt4/mkspecs/features/lex.prf:
/usr/share/qt4/mkspecs/features/include_source_dir.prf:
/usr/lib/i386-linux-gnu/libQtNetwork.prl:
/usr/lib/i386-linux-gnu/libQtCore.prl:
qmake:  FORCE
@$(QMAKE) -o Makefile sam.pro

dist:
@$(CHK_DIR_EXISTS) .tmp/sam1.0.0 || $(MKDIR) .tmp/sam1.0.0
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/sam1.0.0/ && $(COPY_FILE) --parents mythreadlk.h mythreadrec.h sam.h sam_global.h workrec.h myftp.h .tmp/sam1.0.0/ && $(COPY_FILE) --parents mythreadlk.cpp mythreadrec.cpp sam.cpp workrec.cpp myftp.cpp .tmp/sam1.0.0/ && (cd `dirname .tmp/sam1.0.0` && $(TAR) sam1.0.0.tar sam1.0.0 && $(COMPRESS) sam1.0.0.tar) && $(MOVE) `dirname .tmp/sam1.0.0`/sam1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/sam1.0.0


clean:compiler_clean
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) *~ core *.core


####### Sub-libraries

distclean: clean
-$(DEL_FILE) $(TARGET)
-$(DEL_FILE) $(TARGET0) $(TARGET1) $(TARGET2) $(TARGETA)
-$(DEL_FILE) Makefile


check: first

mocclean: compiler_moc_header_clean compiler_moc_source_clean

mocables: compiler_moc_header_make_all compiler_moc_source_make_all

compiler_moc_header_make_all: moc_mythreadlk.cpp moc_mythreadrec.cpp moc_workrec.cpp
compiler_moc_header_clean:
-$(DEL_FILE) moc_mythreadlk.cpp moc_mythreadrec.cpp moc_workrec.cpp
moc_mythreadlk.cpp: myftp.h \
sam_global.h \
mythreadlk.h
/usr/lib/i386-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) mythreadlk.h -o moc_mythreadlk.cpp

moc_mythreadrec.cpp: myftp.h \
sam_global.h \
mythreadrec.h
/usr/lib/i386-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) mythreadrec.h -o moc_mythreadrec.cpp

moc_workrec.cpp: workrec.h
/usr/lib/i386-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) workrec.h -o moc_workrec.cpp

compiler_rcc_make_all:
compiler_rcc_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
-$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all:
compiler_uic_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: compiler_moc_header_clean

####### Compile

mythreadlk.o: mythreadlk.cpp mythreadlk.h \
myftp.h \
sam_global.h \
sam.h \
mythreadrec.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mythreadlk.o mythreadlk.cpp

mythreadrec.o: mythreadrec.cpp mythreadrec.h \
myftp.h \
sam_global.h \
sam.h \
mythreadlk.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mythreadrec.o mythreadrec.cpp

sam.o: sam.cpp sam.h \
sam_global.h \
mythreadrec.h \
myftp.h \
mythreadlk.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o sam.o sam.cpp

workrec.o: workrec.cpp workrec.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o workrec.o workrec.cpp

myftp.o: myftp.cpp myftp.h \
sam.h \
sam_global.h \
mythreadrec.h \
mythreadlk.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o myftp.o myftp.cpp

moc_mythreadlk.o: moc_mythreadlk.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mythreadlk.o moc_mythreadlk.cpp

moc_mythreadrec.o: moc_mythreadrec.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mythreadrec.o moc_mythreadrec.cpp

moc_workrec.o: moc_workrec.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_workrec.o moc_workrec.cpp

####### Install

install:   FORCE

uninstall:   FORCE

FORCE:
 

ничё не понимаю Непонимающий
Записан
Bepec
Гость
« Ответ #1 : Февраль 12, 2016, 10:17 »

Ну он прямо пишет что не может найти файл.
Файл библиотеки точно есть?
Он точно лежит рядом с программой и/или пусть прописан в системных путях?
Записан
qtист
Гость
« Ответ #2 : Февраль 12, 2016, 10:26 »

есть рядом с прогой(это я первое что проверил)

главное я меняю только саму библиотеку
меня вот что смущает, я создал новый Makefile  и ,по-моему,после этого всё
начилось
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #3 : Февраль 13, 2016, 12:45 »

Цитировать
есть рядом с прогой(это я первое что проверил)
такое работает в винде. В линуксе, насколько я помню, есть следующие варианты:
1) прописать каталог с либой в LD_LIBRARY_PATH
2) скопировать/симлинк либу в каталог, который уже прописан в LD_LIBRARY_PATH
3) Если запускать из Qt Creator, то должно сразу работать, если в .pro файле в LIBS правильный путь
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
qtист
Гость
« Ответ #4 : Февраль 15, 2016, 10:05 »

почему библиотеку я назвал sam.so, а  выдается сообщение, что не
найдена libsam.so  Непонимающий
Записан
ksk-
Самовар
**
Offline Offline

Сообщений: 178



Просмотр профиля
« Ответ #5 : Февраль 15, 2016, 10:37 »

почему библиотеку я назвал sam.so, а  выдается сообщение, что не
найдена libsam.so  Непонимающий

Лучше было бы, если бы файл библиотеки назывался "libsam.so".
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Февраль 15, 2016, 15:50 »

почему библиотеку я назвал sam.so, а  выдается сообщение, что не
найдена libsam.so  Непонимающий

Это особенность тулкита CGG - добавлять префикс lib к библиотекам (чтобы отличить их от других файлов).
Но при указании линкеру опции -l этот префикс прописывать не надо, он подставится автоматически.
Т.е. -lsam GCC будет искать файл libsam.a, а студия - sam.lib.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.069 секунд. Запросов: 22.