Superuser

Autor Thema: Undefiniertes Symbol ?  (Gelesen 5101 mal)

Offline tassilo

  • Sobl Master
  • ****
  • Beiträge: 435
    • Freie Jobbörse rund um Linux
Undefiniertes Symbol ?
« am: 30. September 2008, 16:52:53 »
moin

kan mir hier jemand sagen wie ich hier weitermachen kann ? wollte nur etwas compilieren. so eine meldung hatte ich ja noch nie.


[tassilo@testzone:~/work/thales-1.0] $make
Making all in src
make[1]: Entering directory `/export/home/tassilo/work/thales-1.0/src'
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c main.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c log.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c conf.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c compat.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c misc.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c send.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c sockutil.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c messages.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c process.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c memory.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c db.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c actions.c
gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -I/opt/csw/mysql5/include/mysql -Wall -c hashlist.c
gcc  -g -O2 -I/opt/csw/mysql5/include/mysql -Wall  -o thales  main.o log.o conf.o compat.o misc.o send.o sockutil.o messages.o process.o memory.o db.o actions.o hashlist.o  -lmysqlclient -lm -lz
Undefiniertes                   erstmals referenziert
 Symbol                             in Datei
bind                                sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
gethostbyname                       sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libnsl.so.1)
socket                              sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
connect                             sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
shutdown                            sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
ld: Schwerer Fehler: Symbolreferenzierungsfehler. Keine Ausgabe in thales geschrieben
collect2: ld returned 1 exit status
make[1]: *** [thales] Fehler 1
make[1]: Leaving directory `/export/home/tassilo/work/thales-1.0/src'
make: *** [all-recursive] Fehler 1

"bind" fehlt ? bind wie der dns server ? muss ich da nun extra bind installieren oder ist das was anderes ?

grüße

tassilo

sonnenblen.de - Das unabhängige Sun User Forum

Undefiniertes Symbol ?
« am: 30. September 2008, 16:52:53 »

Offline signal_15

  • Sobl Master
  • ****
  • Beiträge: 426
    • Rechenzentrum Amper
Re: Undefiniertes Symbol ?
« Antwort #1 am: 30. September 2008, 16:56:48 »
boah ey, muss das denn deutsch sein!? google bringt gerade mal 19 seiten.
ich glaube nicht, dass mit bind der 'isc bind' gemeint ist.

hast du's schon mal mit dem sun studio compiler versucht?

ct,

Offline tassilo

  • Sobl Master
  • ****
  • Beiträge: 435
    • Freie Jobbörse rund um Linux
Re: Undefiniertes Symbol ?
« Antwort #2 am: 30. September 2008, 17:25:56 »
Hallo

danke für die schnelle antwort.
was meist du mit "muss das denn deutsch sein!?" ?

und sun studio : leider nein. ich überleg immer noch wie ich am besten das auf den rechner bekomm (rechner hat keine tastatur, monitor und steht ca 800km weit weg von hier)

grüße

tassilo

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: Undefiniertes Symbol ?
« Antwort #3 am: 30. September 2008, 17:26:54 »
[...]
so eine meldung hatte ich ja noch nie.
[...]

dann scheinst du ja noch nicht gerade oft was kompiliert zu haben ;)

"bind" fehlt ? bind wie der dns server ? muss ich da nun extra bind installieren oder ist das was anderes ?

Ganz bestimmt nicht. Bind heisst auf Englisch nichts anderes als (an/ver)binden und bezieht sich auf Netzwerksockets. Die Loesung fuer dein Problem steht uebrigens schon in der Meldung - du musst nur libsocket und libnsl mit einbinden. Also einfach "-lnsl -lsocket" zu den LDFLAGS hinzufuegen, dann sollte es gehen.

Mfg. Erisch

PS: Mit englischen Fehlermeldungen haette dir Google zu diesem Problem sicher tausend Seiten angeboten ;)

Offline tassilo

  • Sobl Master
  • ****
  • Beiträge: 435
    • Freie Jobbörse rund um Linux
Re: Undefiniertes Symbol ?
« Antwort #4 am: 30. September 2008, 18:03:49 »
hallo

[tassilo@testzone:~/work/thales-1.0] $echo $LDFLAGS
-L/usr/local/lib -L/opt/csw/mysql5/lib/mysql -lnsl -lsocket
[tassilo@testzone:~/work/thales-1.0] $make
Making all in src
make[1]: Entering directory `/export/home/tassilo/work/thales-1.0/src'
gcc  -g -O2 -I/opt/csw/mysql5/include/mysql -Wall  -o thales  main.o log.o conf.o compat.o misc.o send.o sockutil.o messages.o process.o memory.o db.o actions.o hashlist.o  -lmysqlclient -lm -lz
Undefiniertes                   erstmals referenziert
 Symbol                             in Datei
bind                                sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
gethostbyname                       sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libnsl.so.1)
socket                              sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
connect                             sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
shutdown                            sockutil.o  (Symbol gehört zu impliziter Abhängigkeit /usr/lib/libsocket.so.1)
ld: Schwerer Fehler: Symbolreferenzierungsfehler. Keine Ausgabe in thales geschrieben
collect2: ld returned 1 exit status
make[1]: *** [thales] Fehler 1
make[1]: Leaving directory `/export/home/tassilo/work/thales-1.0/src'
make: *** [all-recursive] Fehler 1

scheint nicht viel geholfen zu haben.
ich glaub da muss ich wirklich erst mal etwas schlaumachen.
und nein compiliert unter solaris hab ich nicht of. und wenn dann kahm immer sowas dabei heraus.
das normale "configure; make && make config" funktionierte meistens auf meiner debian box. aber ich weis das hier ist kein debian und alles ist irgendwie anders. ich hoffe nur das ich soviel freizeit hab das ich das irgendwann nur ansatzweise verstehe :)

grüße

tassilo

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: Undefiniertes Symbol ?
« Antwort #5 am: 30. September 2008, 18:48:08 »
Nachdem du die LDFLAGS gesetzt hast, hast du da configure noch mal laufen lassen? Weil wie du im Output sehen kannst, oder besser nicht sehen kannst, fehlen -lnsl und -lsocket in den gcc Kommandos.

Falls das configure auch nicht hilft ist das Makefile fehlerhaft, dann musste die beiden libraries per Hand an die entsprechende Stelle einfuegen.

Das Problem hat uebrigens mit Solaris nichts zu tun, das kriegst du unter Linux genauso. Nur sind in diesem Fall die benoetigten Symbole wahrscheinlich bei Linux gleich in der libc und nicht in extra libraries.

Mfg. Erisch

Offline tassilo

  • Sobl Master
  • ****
  • Beiträge: 435
    • Freie Jobbörse rund um Linux
Re: Undefiniertes Symbol ?
« Antwort #6 am: 30. September 2008, 19:00:43 »
ha !

das wars. vielen dank!

der vergleich mit linux war btw nicht "wertend" gemeint ... ich hab mit absicht "anders" gesagt nicht "besser/schlechter". und "anders" ist hier wirklich viel, und vieles auch vertraut :)

nochmals danke den helfern und grüße

tassilo