Linker Error mit Visual C++ und der C API von MySQL



  • Schönen guten Tag,
    ich verzweifle langsam.

    Wollte eignetlich nur in SQL mittels C++ ein wenig herum spielen und dabei für meine Programmierenvorlesung in der Uni lernen.

    Ich henge aktuell daran das ich Visual Studio 2010 Express auf meinem Win7 Ulti System laufen habe. Dort ist kein DB-Explorer wie ich gelesen habe mehr drin und den Teil von MS SQL Server der installiert wurde bleibt für mich scheinbar ein ewiges Rätsel.
    Dann stieß ich auf MySQL++ und wollte das einbinden, aber da scheitert es schon daran das ich im VS2010 keine MFC Anwendung zur Auswahl bei der Erstellung habe(stand in einem Tut von MYSQL++ das man das so machen sollte bei VS).
    Lade gerade VS2010 Ultimate (bekommen wir von unserer Uni wie ich erfahren habe kostenlos über MSDNAA vll ist es dort einfacher)

    Ich wollte das ganze mit dem XAMPP SQL Server benutzen da ich mit dem von PHP seiten sehr gute Erfahrungen gemacht hatte (ich will schließlich nur dran herum spielen, nichts besonderes).

    Kämpfe mich seit Samstag durch Tutorials und versuche das zu verstehen aber seht jetzt selber.

    Ich habe nun das VS2010 und mysql-connector-c-6.0.2-win32 installiert, alle Daten von MYSQL in die Standard IncludeOrdner des VS kopiert und wollte nun das compilen. Den Code habe ich aus einem Tut:

    http://www.tutorialhero.com/click-57350-connecting_to_mysql.php

    #include <stdlib.h>
    #include <iostream>
    #include <sstream>
    #include <stdio.h>
    #include <stdexcept>
    #include <Windows.h>
    #include <mysql.h>
    
    using namespace std;
    
    int main(int argc, const char **argv)
    {	
       MYSQL mysql;
       MYSQL_ROW row;
       MYSQL_RES *result;
    
       unsigned int num_fields;
       unsigned int i;
    
       mysql_init(&mysql);
    
       if (!mysql_real_connect(&mysql,"localhost","test","test","test",0,NULL,0))
       {
          fprintf(stderr, "Failed to connect to database: Error: %s\n",
               mysql_error(&mysql));
       }
       else {
          if(mysql_query(&mysql, "SELECT * FROM test"));
             //here goes the error message :clown:
          else {
             result = mysql_store_result(&mysql);
             num_fields = mysql_num_fields(result);
             while ((row = mysql_fetch_row(result)))
             {
                   unsigned long *lengths;
                   lengths = mysql_fetch_lengths(result);
                   for(i = 0; i < num_fields; i++)
                   {
                           printf("[%.*s] \t", (int) lengths[i], row[i] ? row[i] : "NULL");
                   }   
                   printf("\n");
             }
          }
       }
    
       return 0; 
    
    }
    

    Und diese Errors erscheinen mir nun:

    1>------ Erstellen gestartet: Projekt: KI, Konfiguration: Debug Win32 ------
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000334) ""extern "C" struct st_mysql * __stdcall mysql_init(struct st_mysql *)" (?mysql_init@@$$J14YGPAUst_mysql@@PAU1@@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000343) ""extern "C" unsigned long * __stdcall mysql_fetch_lengths(struct st_mysql_res *)" (?mysql_fetch_lengths@@$$J14YGPAKPAUst_mysql_res@@@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A00034C) ""extern "C" unsigned int __stdcall mysql_num_fields(struct st_mysql_res *)" (?mysql_num_fields@@$$J14YGIPAUst_mysql_res@@@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000367) ""extern "C" struct st_mysql_res * __stdcall mysql_store_result(struct st_mysql *)" (?mysql_store_result@@$$J14YGPAUst_mysql_res@@PAUst_mysql@@@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000395) ""extern "C" struct st_mysql * __stdcall mysql_real_connect(struct st_mysql *,char const *,char const *,char const *,char const *,unsigned int,char const *,unsigned long)" (?mysql_real_connect@@$$J232YGPAUst_mysql@@PAU1@PBD111I1K@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000398) ""extern "C" char * * __stdcall mysql_fetch_row(struct st_mysql_res *)" (?mysql_fetch_row@@$$J14YGPAPADPAUst_mysql_res@@@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A0003A8) ""extern "C" int __stdcall mysql_query(struct st_mysql *,char const *)" (?mysql_query@@$$J18YGHPAUst_mysql@@PBD@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A00048A) ""extern "C" char const * __stdcall mysql_error(struct st_mysql *)" (?mysql_error@@$$J14YGPBDPAUst_mysql@@@Z)", auf das in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)" verwiesen wird.
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned long * __stdcall mysql_fetch_lengths(struct st_mysql_res *)" (?mysql_fetch_lengths@@$$J14YGPAKPAUst_mysql_res@@@Z)" in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" char * * __stdcall mysql_fetch_row(struct st_mysql_res *)" (?mysql_fetch_row@@$$J14YGPAPADPAUst_mysql_res@@@Z)" in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned int __stdcall mysql_num_fields(struct st_mysql_res *)" (?mysql_num_fields@@$$J14YGIPAUst_mysql_res@@@Z)" in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql_res * __stdcall mysql_store_result(struct st_mysql *)" (?mysql_store_result@@$$J14YGPAUst_mysql_res@@PAUst_mysql@@@Z)" in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall mysql_query(struct st_mysql *,char const *)" (?mysql_query@@$$J18YGHPAUst_mysql@@PBD@Z)" in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" char const * __stdcall mysql_error(struct st_mysql *)" (?mysql_error@@$$J14YGPBDPAUst_mysql@@@Z)" in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql * __stdcall mysql_real_connect(struct st_mysql *,char const *,char const *,char const *,char const *,unsigned int,char const *,unsigned long)" (?mysql_real_connect@@$$J232YGPAUst_mysql@@PAU1@PBD111I1K@Z)" in Funktion ""int __cdecl main(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>main.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(int,char const * *)" (?main@@$$HYAHHPAPBD@Z)".
    1>E:\My Dropbox\vc++\KI\Debug\KI.exe : fatal error LNK1120: 16 nicht aufgelöste externe Verweise.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Irgendwas ist wohl falsch verlinkt irgendwo, aber ich finde weder im Tut, noch wo anders Hinweise was ich da nun falsch mache, und zu verstehen ist für mich eine solche Ausgabe leider auch noch nicht.

    Am glücklichsten wäre ich irgendwo SQL in C++ so wie in PHP verwenden zu können, da wäre für mich die umgewöhnung schonmal geringer bis gar nicht da ich schon PHP beherrsche und dort auch mit SQL gut kann (wenn ich das nicht falsch gelesen habe irgendwo dann ist in PHP ja auch nur die MYSQL C API implementiert)

    Ich hoffe mir kann wer helfen.



  • geuni89 schrieb:

    Dann stieß ich auf MySQL++ und wollte das einbinden, aber da scheitert es schon daran das ich im VS2010 keine MFC Anwendung zur Auswahl bei der Erstellung habe(stand in einem Tut von MYSQL++ das man das so machen sollte bei VS).
    Lade gerade VS2010 Ultimate (bekommen wir von unserer Uni wie ich erfahren habe kostenlos über MSDNAA vll ist es dort einfacher)

    Dann hast du bislang die Express Edition eingesetzt. Die ist kostenlos und deswegen gibt's da leider keine MFC. Mit allen kostenpflichtigen Versionen (auch, wenn du sie jetzt umsonst bekommst) geht es dann.


Anmelden zum Antworten