.so wird nicht gefunden trotz LIBPATH

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
dr141
Beiträge: 8
Registriert: 13. Juli 2008 00:29

.so wird nicht gefunden trotz LIBPATH

Beitrag von dr141 »

Hallo,

ich hatte ein qt Projekt welches auf zwei Projekte aufgeteilt wurde. Das eine kompiliert nun zu einer dynamischen Bibliothek, .so unter Unix, .dll unter Win. Das funktioniert auch soweit ich das sehe (die Bibs werden erstellt).
Das andere Projekt besteht nur aus einer test-main, die die Bibliothek nutzen soll. Das geht aber nicht, die bib wird nicht gefunden:
make debug
make -f Makefile.Debug
make[1]: Entering directory `/home/martin/workspace/DataInterface_test'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.4.0/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.4.0/include/QtCore -I/usr/local/Trolltech/Qt-4.4.0/include/QtCore -I/usr/local/Trolltech/Qt-4.4.0/include/QtGui -I/usr/local/Trolltech/Qt-4.4.0/include/QtGui -I/usr/local/Trolltech/Qt-4.4.0/include -I../DataInterface -Idebug -I. -o debug/main.o main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:40: warning: unused variable ‘osmFile’
main.cpp:41: warning: unused variable ‘writeOSMFile’
main.cpp:44: warning: unused variable ‘modelId’
g++ -Wl,-rpath,/usr/local/Trolltech/Qt-4.4.0/lib -o DataInterface_test debug/main.o -L../DataInterface -L/usr/local/Trolltech/Qt-4.4.0/lib -L../DataInterface -llibDataInterfaces.so.1.0.0 -lQtGui -L/usr/local/Trolltech/Qt-4.4.0/lib -L/usr/X11R6/lib -lpng -lSM -lICE -pthread -pthread -lXi -lXrender -lXrandr -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
/usr/bin/ld: cannot find -llibDataInterfaces.so.1.0.0
collect2: ld returned 1 exit status
make[1]: Leaving directory `/home/martin/workspace/DataInterface_test'
make[1]: *** [DataInterface_test] Error 1
make: *** [debug] Error 2
Das .pro file:
TEMPLATE = app
TARGET = DataInterface_test
QT += console
SOURCES += main.cpp
FORMS +=
LIBS += -L../DataInterface -llibDataInterfaces.so.1.0.0
LIBPATH += ../DataInterface
INCLUDEPATH += ../DataInterface
Das ganze läuft aus eclipse heraus unter ubuntu.
Hat jemand eine Idee? Ich wäre sehr dankbar!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

es mus -lDatainterfaces heissen
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dr141
Beiträge: 8
Registriert: 13. Juli 2008 00:29

Beitrag von dr141 »

ne, das macht keinen Unterschied.
Die Bibliothek heißt libDataInterfaces.so bzw. libDataInterfaces.so.1.0.0
Wenn ich das lib weglasse wird sie genausowenig gefunden.

Hat es was zu bedeuten, dass da immer /usr/bin/ld: cannot find -lDataInterfaces.so.1.0.0 steht?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

dr141 hat geschrieben:ne, das macht keinen Unterschied.
doch!
-lDataInterfaces.so.1.0.0[/b] steht?
Du sollst -lDataInterfaces angeben !
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dr141
Beiträge: 8
Registriert: 13. Juli 2008 00:29

Beitrag von dr141 »

Tatsächlich, ich korrigiere mich!
Nach einem clean scheint es nun zu kompilieren, aber dann wird nichts ausgeführt.
make debug
make -f Makefile.Debug
make[1]: Entering directory `/home/martin/workspace/DataInterface_test'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.4.0/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.4.0/include/QtCore -I/usr/local/Trolltech/Qt-4.4.0/include/QtCore -I/usr/local/Trolltech/Qt-4.4.0/include/QtGui -I/usr/local/Trolltech/Qt-4.4.0/include/QtGui -I/usr/local/Trolltech/Qt-4.4.0/include -I../DataInterface -Idebug -I. -o debug/main.o main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:40: warning: unused variable ‘osmFile’
main.cpp:41: warning: unused variable ‘writeOSMFile’
main.cpp:44: warning: unused variable ‘modelId’
g++ -Wl,-rpath,/usr/local/Trolltech/Qt-4.4.0/lib -o DataInterface_test debug/main.o -L../DataInterface -L/usr/local/Trolltech/Qt-4.4.0/lib -L../DataInterface -lDataInterfaces -lQtGui -L/usr/local/Trolltech/Qt-4.4.0/lib -L/usr/X11R6/lib -lpng -lSM -lICE -pthread -pthread -lXi -lXrender -lXrandr -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
make[1]: Leaving directory `/home/martin/workspace/DataInterface_test'
Wenn ich es dann durch eine unter Run As... mit Doppelklick auf c++Application erstellte Applikation laufen lasse, kommt wieder:
/home/martin/workspace/DataInterface_test/DataInterface_test: error while loading shared libraries: libDataInterfaces.so.1: cannot open shared object file: No such file or directory
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Leute das sind Compiler und Linux-Basics!
ldconfig nicht ausgeführt für das Verzeichnis wo deine Lib ist. Dmenach weiss der Loader auch nicht wo er sie suchen muss.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dr141
Beiträge: 8
Registriert: 13. Juli 2008 00:29

Beitrag von dr141 »

Nun läuft es :D Danke vielmals. Für dich mögen das Basics sein.
Ich hatte eine Environment-Variable LD_LILBRARY_PATH mit dem Pfad zu der .so angegeben, aber das hat wohl nichts gebracht. Nun habe ich den Pfad in ld.so.conf eingetragen und ldconfig laufen lassen - jetzt geht es.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

LD_LILBRARY_PATH ist ja auch falsch - LD_LIBRARY_PATH
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dr141
Beiträge: 8
Registriert: 13. Juli 2008 00:29

Beitrag von dr141 »

Den Tippfehler habe ich nur hier gemacht. Es war richtig eingetragen.
Antworten