Linker Problem oder was ganz anderes?
-
Hallo,
ich stehe hier ein wenig ratlos da. Normalerweise habe ich früher über Visual Studio C programmiert, aber bin jetzt aufgrund meines wechsels zu Ubuntu "gezwungen" gcc zu nutzen.
Leider habe ich schon einiges probiert und werde doch nicht ganz schlau.
Zu meinem Problem:
Ich schreibe eine Programm das auf eine postgres und eine mysql Datenbankzugreifen muss, dementsprechend müssen einige libs und includes hinzugefügt werden.
Aber ich bekomme jedes mal fehler wie: /usr/bin/ld: warning: cannot find entry symbol --library=mysqlclient; defaulting to 00000000004006a0
pgconn.c:(.text+0x1d): undefined reference to `mysql_query' pgconn.c:(.text+0x2d): undefined reference to `mysql_error'
(konnte nicht mehr einfügen da mir seltsamerweise "Maximal sind 10 Smilies erlaubt!" angezeigt wird.)
ich habe alles mögliche schon probiert. Über makefile/geany (wobei ich da nicht wirklich klar komme) und ganz normal über gcc.
Doch leider bekomme ich es nicht hin.
Wäre nett wenn mir jemand weiterhelfen könnte.
-
Was tust du, was zu diesem Ergebnis führt?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89, C99 und C11) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
SeppJ schrieb:
Was tust du, was zu diesem Ergebnis führt?
kedas schrieb:
pgconn.c:(.text+0x1d): undefined reference to `mysql_query' pgconn.c:(.text+0x2d): undefined reference to `mysql_error'
kedas@ubuntu:~/Desktop/ConToLx$ gcc -e -I/home/kedas/Desktop/ConToLx/include -lmysqlclient -L/usr/local/lib pgconn.c
oder auch via makefile
CC=gcc INCLUDES = -I/usr/include/mysql -I/usr/include/postgresql LIBS = -lmysqlclient -/usr/lib CFLAGS=-I$(INC) LDLIBS=-L$(LIB) -lpq ALL = pgconn all: $(ALL) clean: @rm -f *.o *~ $(ALL)
-
So viel Information! Da kann man ja kaum Relevantes und Irrelevantes trennen.[/Ironie]
Weißt du, was die Kommandozeilenoption '-e' macht (außer, dass sie deinen ersten Fehler verursacht)?
Beim Linken ist die Reihenfolge wichtig. Links stehen die Sachen, die Symbole aus den Bibliotheken weiter rechts brauchen.