teilzeitstudent
Newbie
Moin,
also die Situtation is folgende:
Ich wollte eine shared lib. und ein kleines Testprogramm für selbige erstellen; als Grundlage hab ich das C++ Projekt "Einfaches Hello-World Programm" benutzt. Das automatisch erstellte target (für KDevelop, nicht für make) enthält nur das Testprogramm.
Dem vorhandenen "Unterprojekt" namens "src" (was halt automatisch immer erstellt wird) hab ich ein neues unterprojekt hinzugefügt in dem source usw. für die library ist. Diesem Unterprojet hab ich dann n neues Target hinzugefügt für die Einstellungen wegen der shared lib.
Wenn ich das in KDevelop ausführe, klappt alles wunderbar. Wenn ich das aber mit dem Dreisatz installiere, kommt die Fehlermeldung "error while loading shared libraries: libplayersynk.0: cannot open shared object file: No such file or directory"
Alles in allem sieht die Struktur so aus:
src/libplayersynktest.cpp <---- das testprogramm
src/Makefile.am
src/libplayersynk/libplayersynk.h <--- die lib halt
src/libplayersynk/libplayersynk.cpp
src/libplayersynk/Makefile.am
src/libplayersynk/Makefile.am:
src/Makefile.am:
Dass der die shared lib nich findet is eigentlich klar... es gibt kein Verzeichniss namens libplayersynk/ die library wird einfach nach /usr/local/lib installiert.
Wenn ich das aber Umänder in "-lplayersynk" dann klappt das mit dem kompilieren in KDevelop nicht, da die library ja nich installiert ist.
Hilfe?
also die Situtation is folgende:
Ich wollte eine shared lib. und ein kleines Testprogramm für selbige erstellen; als Grundlage hab ich das C++ Projekt "Einfaches Hello-World Programm" benutzt. Das automatisch erstellte target (für KDevelop, nicht für make) enthält nur das Testprogramm.
Dem vorhandenen "Unterprojekt" namens "src" (was halt automatisch immer erstellt wird) hab ich ein neues unterprojekt hinzugefügt in dem source usw. für die library ist. Diesem Unterprojet hab ich dann n neues Target hinzugefügt für die Einstellungen wegen der shared lib.
Wenn ich das in KDevelop ausführe, klappt alles wunderbar. Wenn ich das aber mit dem Dreisatz installiere, kommt die Fehlermeldung "error while loading shared libraries: libplayersynk.0: cannot open shared object file: No such file or directory"
Alles in allem sieht die Struktur so aus:
src/libplayersynktest.cpp <---- das testprogramm
src/Makefile.am
src/libplayersynk/libplayersynk.h <--- die lib halt
src/libplayersynk/libplayersynk.cpp
src/libplayersynk/Makefile.am
src/libplayersynk/Makefile.am:
Code:
AM_CPPFLAGS=$(all_includes)
lib_LTLIBRARIES = libplayersynk.la
libplayersynk_la_LDFLAGS = $(all_libraries) -version-info 0:1:0 -no-undefined
libplayersynk_la_SOURCES = libplayersynk.cpp
include_HEADERS=libplayersynk.h
METASOURCES = AUTO
Code:
bin_PROGRAMS = libplayersynktest
libplayersynktest_SOURCES = libplayersynktest.cpp
# set the include path found by configure
INCLUDES = -I$(top_srcdir)/src/libplayersynk $(all_includes)
# the library search path.
libplayersynktest_LDFLAGS = $(all_libraries)
libplayersynktest_LDADD = libplayersynk/libplayersynk.la
SUBDIRS = libplayersynk
AM_CXXFLAGS = -fPIC
Dass der die shared lib nich findet is eigentlich klar... es gibt kein Verzeichniss namens libplayersynk/ die library wird einfach nach /usr/local/lib installiert.
Wenn ich das aber Umänder in "-lplayersynk" dann klappt das mit dem kompilieren in KDevelop nicht, da die library ja nich installiert ist.
Hilfe?