Nu kommense ... die blöden Anfängerfragen

mennowar

mennowar

B.a.f.H.
Aaalso ... zum Code direkt habbich ja erstaunlicherweise keine weiteren Fragen (it's all Perl *g*), aber diese kompilier- link-Problematik... da habe ich noch ein wenig Probs.

Und zwar...
wenn ich folgendes eingebe:
Code:
gcc -I /usr/include/mysql -I. -I.. -o myfile myfile.cpp
eingebe, dann bekomme ich Fehler a'la
"unreferenced Symbol mysql_real_connect..."

lasse ich das ganze hiermit übersetzen, linken, und was weiß ich noch alles, dann funktioniert es auf Anhieb:
Code:
c++ -DHAVE_CONFIG_H -I. -I/usr/local/include/mysql  -g -O2 -c $1.cpp
/bin/sh libtool --mode=link c++  -g -O2 -L/usr/local/mysql/lib -o $1  $1.o ./sqlplusint/libsqlplus.la -lz -lmysqlclient
c++ -g -O2 -L/usr/local/mysql/lib -o .libs/$1 $1.o ./sqlplusint/.libs/libsqlplus.so -lz -lmysqlclient -lz -lmysqlclient -Wl,--rpath -Wl,/usr/local/lib

Selbst das Ersetzen von gcc durch c++ brachte hier keine Änderung.

Kann mir jemand erklären, wo der Unterschied ist?
Im langen Beispiel bastelt er irgendwelche Libraries aus dem cpp-File, das habe ich schon mitbekommen, aber ich will keine Libs kompilieren sondern nur mein Binary.
Und desweiteren: auf die eine Art funnzt es, auf die andere nicht=?=


Sehr stark grübelnd,
Mennowar

PS: Hinweise auf man c++ oder man gpp brauche ich nicht, die habe ich nämlich schon durchgeackert :)
 
Hinweise auf man c++ oder man gpp brauche ich nicht, die habe ich nämlich schon durchgeackert

Dann weiss Du auch, dass Du im zweiten Beispiel gegen die mysqlclient library und andere linkst und somit die fehlenden Referenzen des obigen Beispiels umgehst.

Siehe Parameter -l und -L in man gcc/g++.

gruss
Raz
 

Ähnliche Themen

Linkerproblem mit MXE

Linker meckert über nicht definierte Funktion

Akonadi startet nicht mehr

dovecot und postfix Konfiguration Problem

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Zurück
Oben