MySQL-Datenbank Anbindung mit C



  • Hallo 🙂
    ich habe Probleme mein kleines Programm mit einer MySQL-DB zu verbinden.
    Beim Kompilieren kommt so ein seltsamer Fehler 😮

    #include "stdafx.h"       /* System-Includedateien                           */ 
    #include <stdio.h>        /* C-Standard Ein-/Ausgabe-Bibliothek einfuegen    */ 
    
    #include <windows.h> 
    #include "mysql.h" 
    //#include "my_global.h" <- die existiert garnicht auf meinem Rechner :O 
    
    int main( void )                                       /* Hauptfunktion main */ 
    {                                                      /* ****************** */ 
    
      MYSQL *my; 
      my = mysql_init(NULL); 
      if(my == NULL) 
        { 
          fprintf(stderr, "Fehler beim Initialisieren \n"); 
        } 
    
      while ( getchar() != '\n' ); /* Auf Return-Taste warten                    */ 
    
      return 0; 
    } /* main()                                                                  */
    

    Beim Kompilieren mit Visual C++ bekomm ich dann diesen Fehler:

    `Kompilieren...

    stdafx.cpp

    Kompilieren...

    AssemblyInfo.cpp

    ForumPost.cpp

    Code wird generiert...

    Ressourcen werden kompiliert...

    Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1

    Copyright (C) Microsoft Corporation. All rights reserved.

    Verknüpfen...

    ForumPost.obj : error LNK2028: Nicht aufgelöstes Token (0A000015) ""extern "C" struct st_mysql * __stdcall mysql_init(struct st_mysql *)" (?mysql_init@@$$J14YGPAUst_mysql@@PAU1@@Z)", auf das in Funktion ""int __cdecl main(void)" (?main@@$$HYAHXZ)" verwiesen wird.

    ForumPost.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql * __stdcall mysql_init(struct st_mysql *)" (?mysql_init@@$$J14YGPAUst_mysql@@PAU1@@Z)" in Funktion ""int __cdecl main(void)" (?main@@$$HYAHXZ)".

    C:\Users\Johann\Desktop\ForumPost\Debug\ForumPost.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise. `
    **
    Also was ich bisher gemacht habe ist folgendes:**

    mir noch zusätzlich zum MySQL Community Server den Connector/C (libmysql) runtergeladen von http://www.mysql.de/downloads/

    den Pfad "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include" unter
    ALT + F7 -> Konfigurationseigenschaften -> C/C++ -> Zusätzliche Includeverzeichnisse eingefügt (für die mysql.h)

    den Pfad "C:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt\libmysql.lib"
    auch unter Konfigurationseigenschaften -> Linker -> Allgemein-> Zusätzliche Bibliotheksverzeichnisse eingefügt, um die Bibliothek libmysql.lib bekannt zu machen

    die libmySQL.dll in den system32 Ordner kopiert, laut
    http://openbook.galileocomputing.de/c_von_a_bis_z/024_c_mysql_004.htm#mj4632eac10f7fea468ccb98a96dd77456
    musste das so

    Vielen Dank :p
    Johann

    Edit:
    Wenn ich folgende Zeilen auskommentier, lässt es sich aber problemlos kompilieren:

    MYSQL *my; 
    
     // my = mysql_init(NULL); 
     // if(my == NULL) 
     //   { 
     //     fprintf(stderr, "Fehler beim Initialisieren \n"); 
     //   }
    


  • Ich kenne mich mit VC++ nicht aus, aber:

    den Pfad "C:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt\libmysql.lib"
    auch unter Konfigurationseigenschaften -> Linker -> Allgemein-> Zusätzliche Bibliotheksverzeichnisse eingefügt, um die Bibliothek libmysql.lib bekannt zu machen

    Das klingt falsch. Du solltest das Verzeichnis hinzufügen, nicht den vollständigen Pfad zur Library (.lib-File) und irgendwo musst Du einstellen können, dass zu dieser Library gelinkt werden soll.



  • Hallo,
    ich habe gleiches Problem nur das ich schon einiges probiert habe.

    ich habe die lib beim linker und das verzeichnis angegeben und beim compiler auch den pfad zu den includes.

    ich habe es auch schon mit den 64bit apis und den 32bit apis versucht da ich win7 prof 64bit habe

    irgendwo habe ich auch gelesen man soll die libmysql.dll in das system32 kopieren, hat alles nicht geholfen

    das ganze spielt sich im vs++ 2010 ab, ich hoffe die informationen reichen

    was ist denn eine weiter mögliche Fehlerquelle?


Anmelden zum Antworten