sonnenblen.de - Das unabhängige Sun User Forum
Software => Programmieren, Kompilieren => Thema gestartet von: tassilo 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
-
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,
-
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
-
[...]
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 ;)
-
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
-
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
-
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