Mysql-zugriff unter c

hi!

ich versuche gerade einen zugriff auf eine sql-datenbank mittels eines c-programmes zu realisieren und habe da einige probleme. ich benutze den gcc-compiler.

ich habe die bei mysql mitgelieferte datei mysql.h als #include eingebunden, die wird auch gefunden und die dateien, die in der mysql.h eingebunden werden werden auch gefunden.

wenn ich jetzt als test den befehl MYSQL_CONNECT() unter MAIN schreibe sagt er beim compilieren UNDEFINED REFERENCE TO MYSQL_CONNECT. was habe ich da vergessen?

vielen dank, christian.

wenn ich jetzt als test den befehl MYSQL_CONNECT() unter MAIN
schreibe sagt er beim compilieren UNDEFINED REFERENCE TO
MYSQL_CONNECT. was habe ich da vergessen?

  1. Es wird kleingeschrieben mysql_connect()
  2. Braucht die Funktion keine Parameter?
  3. Hast du die Client Library von mySQL gelinkt?

Mfg Bruno

  1. Es wird kleingeschrieben mysql_connect()

hab ich beides ausprobiert.

  1. Braucht die Funktion keine Parameter?

wahrscheinlich schon, aber dann hätte er doch eher einen fehler von fehlenden parametern zurückgegeben?

ich hab ausserdem die mitgelieferte mytest.c versucht zu kompilieren, da hat er bei sämtlichen mysql_xxx-befehlen die drin vorkommen auch o.g. fehler gebracht.

  1. Hast du die Client Library von mySQL gelinkt?

nein. muß ich die in der gcc kommandozeile mit aufrufen? ich habe da schon rumprobiert, bin aber an der syntax gescheitert.

  • welche ist die client library? libmysql.dll?
  • muss ich die .dll linken oder die .c aus der source distribution?

christian

  1. Hast du die Client Library von mySQL gelinkt?

nein. muß ich die in der gcc kommandozeile mit aufrufen? ich
habe da schon rumprobiert, bin aber an der syntax gescheitert.

  • welche ist die client library? libmysql.dll?
  • muss ich die .dll linken oder die .c aus der source
    distribution?

Da du gcc benutzt gehe ich mal davon aus, dass die ganze Sache unter Linux geschieht? Wenn nicht, dann korrigiere mich.

Unter Linux kannst du mit einer .dll nichts anfangen, die Library heisst glaube ich libmysqlclient.so oder so. Du linkst sie mit der gcc-Option „-lmysqlclient“, wenn sie in einem Standard-Pfad liegt (/usr/lib oder sowas), ansonsten musst du noch den LD-Pfad irgendwie umsetzen, damit kenne ich mich aber auch nicht so genau aus.

Da du gcc benutzt gehe ich mal davon aus, dass die ganze Sache
unter Linux geschieht? Wenn nicht, dann korrigiere mich.

ne, ist windows.

Unter Linux kannst du mit einer .dll nichts anfangen, die
Library heisst glaube ich libmysqlclient.so oder so. Du linkst

könnte ich dann unter windows mit einer .dll was anfangen? ich weiss jetzt einfach nicht ob ich die schon kompilierte datei linken muss oder die quelldatei…

sie mit der gcc-Option „-lmysqlclient“, wenn sie in einem
Standard-Pfad liegt (/usr/lib oder sowas), ansonsten musst du
noch den LD-Pfad irgendwie umsetzen, damit kenne ich mich aber
auch nicht so genau aus.

gut, das heißt ja schonmal daß ich auf dem richtigen weg war :wink:

christian

könnte ich dann unter windows mit einer .dll was anfangen? ich
weiss jetzt einfach nicht ob ich die schon kompilierte datei
linken muss oder die quelldatei…

Du brauchst die .dll für die Laufzeit und eine .lib zum linken.
Müsste beides bei mysql im Lib verzeichnis dabei sein.

Ich glaube es ist die „mysqlclient.lib“, da gibts noch eine libmysql.lib, bin mir nicht hundertprozentig sicher, probier mal beide aus.