g++ kann libmysqlclient nur dynamisch und nicht statisch linken?
-
Hallo,
ich versuche, ein C++ Programm unter Debian mit g++ zu kompilieren und zu linken.
Dieses Programm verwendet die MySQLClient Lib.Wenn ich diese Lib dynamisch linke, wird das Programm ohne Probleme erstellt, aber wenn ich es statisch probiere, treten Linker-Fehler auf, als ob die Bibliothek fehlen würde..
Dynamisch gelinkt funktioniert es:
g++ -I/[PFAD]/include/ /[PFAD]/lib/libmysqlclient.so main.cpp config.cpp -o pazaakserver
Statisch gelinkt jedoch nicht:
g++ -I/[PFAD]/include/ /[PFAD]/lib/libmysqlclient.a main.cpp config.cpp -o pazaakserver
Ausgabe, wenn statisch gelinkt wird:
/tmp/ccAZ3M7D.o: In function `InitializeMySQL(CConfig const&)': main.cpp:(.text+0x90): undefined reference to `mysql_init' main.cpp:(.text+0xf8): undefined reference to `mysql_real_connect' main.cpp:(.text+0x1a1): undefined reference to `mysql_query' main.cpp:(.text+0x1b9): undefined reference to `mysql_errno' main.cpp:(.text+0x24c): undefined reference to `mysql_query' main.cpp:(.text+0x26a): undefined reference to `mysql_query' main.cpp:(.text+0x347): undefined reference to `mysql_query' main.cpp:(.text+0x356): undefined reference to `mysql_errno' /tmp/ccAZ3M7D.o: In function `main': main.cpp:(.text+0x45d): undefined reference to `mysql_close' /tmp/ccAZ3M7D.o: In function `mysql_print_error(st_mysql*)': main.cpp:(.text._Z17mysql_print_errorP8st_mysql[mysql_print_error(st_mysql*)]+0xf): undefined reference to `mysql_error' main.cpp:(.text._Z17mysql_print_errorP8st_mysql[mysql_print_error(st_mysql*)]+0x1c): undefined reference to `mysql_errno' collect2: ld returned 1 exit status
Die libmysqlclient.a (und die libmysqlclient.so) existieren natürlich in dem angegebenen Verzeichnis.
Woran könnte es liegen, dass es statisch nicht funktioniert?
MfG// Edit: Zur Verdeutlichung die Befehle geändert
-
Ändere mal die Reihenfolge zu:
g++ -I/[PFAD]/include/ main.cpp config.cpp /[PFAD]/lib/libmysqlclient.a -o pazaakserver
-
Perfekt, jetzt funktionierts!
Danke!Ich dachte nicht, das die Reihenfolge entscheidend ist..