MySQL "mysql_real_connect()" Visual C++



  • Hallo,

    ich habe eine Win32-Konsolenanwendung und möchte mit einen MySQL Server connecten.
    Beim Compilieren erhalte ich folgenede Fehlermeldung:

    1>LINK : fatal error LNK1104: Datei "D:\MySQL\MySQL.obj" kann nicht geöffnet werden.
    

    Hier ist der Quellcode:

    #include <stdio.h>
    #include <stdlib.h>
    #if defined __WIN32__ || _MSC_VER
        #include <windows.h>
    #endif
    #include <D:\MySQL\MySQL Server 6.0\include\mysql.h>
    
    int main (int argc, char **argv) {
       MYSQL  *my;
       /* Handle initialisieren */
       my = mysql_init(NULL);
       if(my == NULL) {
          fprintf(stderr, " Initialisierung fehlgeschlagen\n");
          return EXIT_SUCCESS;
       }
       /* Mit dem Server verbinden */
       if( mysql_real_connect (
            my,   /* Zeiger auf MYSQL-Handler */
            NULL, /* Host-Name */
            NULL, /* User-Name */
            NULL, /* Passwort für user_name */
            NULL,  /* Name der Datenbank */
            0,     /* Port (default=0) */
            NULL,  /* Socket (default=NULL) */
            0      /* keine Flags */  )  == NULL) {
          fprintf (stderr, "Fehler mysql_real_connect():"
            "%u (%s)\n",mysql_errno (my), mysql_error (my));
       }
       else
          printf("Erfolgreich mit dem MySQL-Server verbunden\n");
       /* Hier befindet sich der Code für die Arbeit mit MySQL */
       /* Verbindung trennen */
       mysql_close (my);
       return EXIT_SUCCESS;
    }
    

    Um die Include und Lib von MySQL zu erhalten habe ich MySQL Server 6.0 installiert.


  • Mod

    1. Möglichkeit Du hast die LIB nicht in das Projekt eingefügt.
    2. Die Datei D:\MySQL\MySQL.obj existiert eben wirklich nicht.



  • Ja die Datei D:\MySQL\MySQL.obj existiert auch nicht und auch nirgendwo anders. Wieso sucht denn der Compiler bzw. der Linker nach dieser "*.obj" Datei?

    Die lib habe ich folgendermaßen in das Projekt eingefügt (siehe gif): http://www.bilder-hochladen.net/files/9uka-1-gif.html


  • Mod

    Offensichtlich verwendet eine der Libraries bzw. eine Deine Source Dateien eine Referenz auf diese Datei.

    Dein Eintrag auf die LIB Datei gehört in ein Feld unter Karteireiter Linker-Eingabe!



  • Mir fählt da gerade ein das doch der Linker eine ".obj" Datei erstellt.
    Offenbar sucht der auch noch nach anderen "
    .obj" Dateien. Kopiere ich die main.obj aus dem Debug Ordner aus Dem Visual C++ Projekt in den MySQL Ordner wo der Linker nach der MySQL.obj Datei sucht und bennene die main.obj dort auf MySQL.obj um, meckert der Linker das er Server.obj nicht findet.

    Irgendwas scheine ich da komplett falsch zu haben.
    Das ist doch die richitge Include und Lib für Visual C++ oder? Auch wenn die jetzt in reinem C geschriebenben wurden. Die habe ich mit der MySQL Server 6.0 installation mittinstalliert.



  • Okay fall auflösung

    ich muss die benötigten header aus der Include von MySQL Server 6.0 in mein Projektverzeichniss kopieren, sowie die Lib (libmysql.lib).

    das was der Linker da suchte war wirklich die main.obj die durch die CPP-Datei mit dem namen main ensteht.


Anmelden zum Antworten