ld: Undefined symbols:

B

Borack

Mitglied
Thread Starter
Dabei seit
15.05.2006
Beiträge
73
Reaktionspunkte
0
hallo zusammen,


ich versuche ein simples c - programm zu compilieren. für dieses programm brauche ich die die netpbm library. Diese habe ich mir via 'fink install netpbm10' geholt. wenn ich in mein file nun die pam.h header datei include findet er die, aber compilieren kann ich das ganze trotzdem nicht. die Fehlermeldung:

** Build of configuration Debug for project bs ****

make all
Building target: libbs
Invoking: MacOS X C Linker
gcc -L/usr/local/netpbm/lib -dynamiclib -o "libbs" ./starter.o
ld: Undefined symbols:
_pm_setjmpbuf
_pnm_readpam
/usr/bin/libtool: internal link edit command failed
make: *** [libbs] Error 1


Ich wär wirklich sehr froh wenn mir jemand weiterhelfen könnte.
Vielen Dank im voraus

- borack
 
die fink installation ist nicht in /usr/local sondern in /sw
 
Merci für die Antwort.
Natürlich hast du Recht - vor lauter ausprobieren hab ich langsam den Durchblick verloren.

Nur:

**** Build of configuration Debug for project bs ****

make all
Building target: libbs
Invoking: MacOS X C Linker
gcc -L/sw/lib -dynamiclib -o "libbs" ./starter.o
ld: Undefined symbols:
_pm_setjmpbuf
_pnm_readpam
/usr/bin/libtool: internal link edit command failed
make: *** [libbs] Error 1

: ((
 
da musst du gucken, in welcher lib die sind und die halt explizit mit rein linken...
 
Ok, aber wie finde ich raus wo genau die stehen?
 
grep auf die binaries der lib?
ich denke mal die sind teil der netpbm und das ist nicht vernünftig im linker path...
 
Hmm... halt mal! z.b. pnm_readpam wird ausschliesschlich in einer Header Datei (pam.h) gefunden und überall dort wo ichs aufrufen will.

Kann doch nicht sein, oder?
 
fink sollte automatisch ne Library kompilieren mittels fink install netpbm - oder seh ich jetzt da was ganz falsch?
 
dann link halt libpam mit rein...
oder gib halt -L/usr/lib auch mit an...
 
Mei!
Die libpam.1.dylib befindet sich in /Developer/SDKs/MacOSX10.4u.sdk/usr/lib

hab ich nun reingelinkt

aber:

**** Build of configuration Debug for project bs ****

make all
Building target: libbs
Invoking: MacOS X C Linker
gcc -L/usr/lib -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib -L/sw/lib -dynamiclib -o "libbs" ./starter.o -l/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libpam.1.dylib
/usr/bin/libtool: can't locate file for: -l/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libpam.1.dylib
/usr/bin/libtool: file: -l/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libpam.1.dylib is not an object file (not allowed in a library)
make: *** [libbs] Error 1
 
ja, eine dylib ist halt nicht static ;)
versuch doch mal -llibpam
 
ja, eine dylib ist halt nicht static ;)
versuch doch mal -llibpam


sorry - aber ich versteh nicht was du meinst.

ein llibpam File gibts nicht auf meinem System, und das ganze mit -llibpam zu starten ergibt:

**** Build of configuration Debug for project bs ****

make all
Building target: libbs
Invoking: MacOS X C Linker
gcc -L/usr/lib -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib -L/sw/lib -Xlinker -llibpam -dynamiclib -o "libbs" ./starter.o -l/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libpam.1.dylib
/usr/bin/libtool: can't locate file for: -llibpam
/usr/bin/libtool: file: -llibpam is not an object file (not allowed in a library)
/usr/bin/libtool: can't locate file for: -l/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libpam.1.dylib
/usr/bin/libtool: file: -l/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libpam.1.dylib is not an object file (not allowed in a library)
make: *** [libbs] Error 1
 
welches system hast du denn?
bei mir ist die in /usr/lib

-l/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libpam.1.dylib
produziert den fehler, das muss dann ja raus...
 
Mac OS X 10.4.11


**** Build of configuration Debug for project bs ****

make all
Building target: libbs
Invoking: MacOS X C Linker
gcc -L/usr/lib -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib -L/sw/lib -Xlinker -llibpam -dynamiclib -o "libbs" ./starter.o
/usr/bin/libtool: can't locate file for: -llibpam
/usr/bin/libtool: file: -llibpam is not an object file (not allowed in a library)
make: *** [libbs] Error 1


Kann es sein dass bei meinem Rechner was zerschossen ist?
 
Hmm, aber wie komme ich zu den richtigen Optionen?
Ich hab schon einiges versucht und langsame hab ich das Gefühl ich dreh mich im Kreis.
 
.. oder hat irgendwas mit der netpbm library nicht funktioniert?

also die Installation mit fink - mein ich.
 
.. oder hat irgendwas mit der netpbm library nicht funktioniert?

also die Installation mit fink - mein ich.

Ich halte mich fern von fink, damit ich solche Probleme nicht habe

Alex
 
Irgendwelche Ratschläge was ich machen könnte?
 
Ja:

./configure & make & sudo make install

Kein fink

Alex
 
Zurück
Oben Unten