eigene Libary einbinden
-
Hi,
ich kann leider die Libarys nicht einbinden, dabei sind die Ordner in Linux.def angegebenARCH_INC = -I/home/src/.../lib -I/home/lib
ARCH_LIB = -lpng -lasd -lwer -ldeg -lordner1 -lordner2
die ersten Libaries werden gefunden, die letzten beiden (im 2.Ordner) nicht?
Kann mir da jemand weiterhelfen?
-
Für Library-Pfade brauchst Du nicht -I sondern -L. Die Option "-I" ist für die Header-Suchpfade.
-
Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Es tut mir leid. In der Zeile steht auch ursprünglich ein -L nicht -I,
Aber trotzdem danke für den Hinweis
-
Du brauchst "-L" für die Ordnerpfade und "-l" für die tatsächlichen Libraries.
Also sowas in der Art:
Im Verzeichnis /foo/bar/ liegt die Datei libasound.soDeine Flags: "-L/foo/bar -lasound".
Das muss gehen, wenn nicht, zeig mal Deine Fehlermeldung.
-
Linux.de:
#Platform dependent makefile
#Project: pnetz3kombi
#C Compiler and Flags
CC = gcc
CFLAGS = -DGCC3 -g -DGCC3 -Df2cFortran -DXML_TEST -DOHNE_MYSQL -O3 -finline-functions -Wall
#C++ Compiler and Flags
CXX = c++
CPPFLAGS = -Df2cFortran -DGCC3 -DXML_TEST -DOHNE_MYSQL -g -DGCC3 -Df2cFortran -DXML_TEST -DOHNE_MYSQL -O3 -finline-functions -Wall
CPPSPECIALFLAGS = -DOHNE_MYSQL
DEPENDFLAGS = -MM $(CPPFLAGS)
PIC = -fPIC
MOC =
# Fortran compiler and flags
FORTRANC = g77
FORTRAN_CFLAGS = -O -g -DGCC3 -Df2cFortran -DXML_TEST -DOHNE_MYSQL -O3 -finline-functions -Wall
# linker for all object files (C, C++, Fortran)
LINK = $(CXX)
# static library
ARFLAGS = -ruv
RANLIB = ranlib
# builds shared library; $(SHARED_LIB) defined in Makefile
SHARED_LINK = (SHARED_LIB).$(SHLIB_MAJOR)
# include path and library settings for C, C++, Fortran
ARCH_INC =
# add other linker flags here, i.e. -L/usr/local/lib
ARCH_LDFLAGS = -L/home/sp936399/src/lib -L/home/sp936399/lib
# add other libraries here, i.e. -liostream
ARCH_LIB = -libumflib -libgenalg3 -libgrafik3 -liballgemein -libumfpack -lamd -lmst -lpng -lz -lg2c -lmFehler:
/usr/bin/ld: cannot find -libumflib
collect2: ld returned 1 exit statusund ich kann usr/bin/ld nirgendwo mit grep finden.
und libumflib liegt in ../lib
-
Und wie heißen Deine Libs? (Dateinamen wären hilfreich.)
Normalerweise: "libfoobar.so" -> gelinkt mit "-lfoobar", _nicht_ mit "-libfoobar".
-
Die Libaries in ../lib/
-rwxr-xr-x 1 sp936399 sp936399 20999275 Dec 5 10:40 libdesire3.so
-rwxr-xr-x 1 sp936399 sp936399 20999275 Dec 5 10:40 libdesire3.so.0
-rwxr-xr-x 1 sp936399 sp936399 20999275 Dec 5 10:40 libdesire3.so.0.1
-rwxr-xr-x 1 sp936399 sp936399 1156075 Dec 5 10:40 libdesire_io.so
-rwxr-xr-x 1 sp936399 sp936399 1156075 Dec 5 10:40 libdesire_io.so.0
-rwxr-xr-x 1 sp936399 sp936399 1156075 Dec 5 10:40 libdesire_io.so.0.1
-rwxr-xr-x 1 sp936399 sp936399 3233096 Dec 5 10:40 libgrafik3.so
-rwxr-xr-x 1 sp936399 sp936399 3233096 Dec 5 10:40 libgrafik3.so.0
-rwxr-xr-x 1 sp936399 sp936399 3233096 Dec 5 10:40 libgrafik3.so.0.1
-rwxr-xr-x 1 sp936399 sp936399 469347 Dec 5 10:40 libmst.so
-rwxr-xr-x 1 sp936399 sp936399 469347 Dec 5 10:40 libmst.so.0
-rwxr-xr-x 1 sp936399 sp936399 469347 Dec 5 10:40 libmst.so.0.1
-rwxr-xr-x 1 sp936399 sp936399 2395759 Dec 5 10:40 libnetzberechnung.so
-rwxr-xr-x 1 sp936399 sp936399 2395759 Dec 5 10:40 libnetzberechnung.so.0
-rwxr-xr-x 1 sp936399 sp936399 2395759 Dec 5 10:40 libnetzberechnung.so.0.1
-rwxr-xr-x 1 sp936399 sp936399 81046074 Dec 5 10:40 libpnetz3kombi.so
-rwxr-xr-x 1 sp936399 sp936399 81046074 Dec 5 10:40 libpnetz3kombi.so.0
-rwxr-xr-x 1 sp936399 sp936399 81046074 Dec 5 10:40 libpnetz3kombi.so.0.1
-rwxr-xr-x 1 sp936399 sp936399 66978 Dec 5 10:40 libz.so
-rwxr-xr-x 1 sp936399 sp936399 66978 Dec 5 10:40 libz.so.0
-rwxr-xr-x 1 sp936399 sp936399 66978 Dec 5 10:40 libz.so.0.1
-rwxr-xr-x 1 sp936399 sp936399 66978 Dec 5 10:40 libz.so.1
-
Das übersehen, Matt?:
nman schrieb:
Normalerweise: "libfoobar.so" -> gelinkt mit "-lfoobar", _nicht_ mit "-libfoobar".
-
Das habe ich leider übersehen, Danke.
Kann mir nur einer erklären, warum die Zeiger in/usr/bin/ld definiert werden? Kann ich diese Datei irgendwo festlegen, oder
ihm direkt sagen, wo die Bibliotheken sind? Ausgabe am Ende des Kompilieren:Danke nochmal an alle!!!