2009-09-20 6 views
2

PROBLÈME:MySQL Connector/C++ Library Liaison erreur problème

Ok, je l'ai essayé de suivre l'exemple de code sur la Forge MySQL Wiki et quelques autres sites qui offrent un tutoriel sur la façon d'obtenir une simple connexion de base de données , mais pour une raison quelconque, mon projet échoue toujours à une erreur de liaison et je ne peux pas comprendre pourquoi ou comment le réparer moi-même (j'apprends toujours). AIDEZ-MOI, S'IL VOUS PLAÎT! J'ai inclus le répertoire de chemin nécessaire pour les fichiers d'en-tête dans les propriétés du projet ET fourni le répertoire de chemin aux fichiers lib utilisés dans MySQL Connector/C++. Le code que j'utilise est ci-dessous si quelqu'un pourrait me donner un indice utile/commentaire sur la façon de le réparer. Je pense que cela a quelque chose à voir avec la connexion aux fichiers lib (à cause de l'erreur de liaison) mais je ne connais pas de solution pour y remédier. Est-ce que quelqu'un d'autre a eu des problèmes comme ça?

http://forge.mysql.com/wiki/Connector_C++ http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html#createdb

CODE:

int main() { 
    // do something 
    sql::mysql::MySQL_Driver *driver; 
    sql::Connection *con; 
    sql::Statement *stmt; 
    sql::ResultSet *res; 
    sql::PreparedStatement *pstmt; 

    cout << "Starting Driver Instance" << endl; 
    driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance(); 

    return 0; 
} 

SORTIE ERREUR:

1>------ Build started: Project: test, Configuration: Debug Win32 ------ 
1>Compiling... 
1>main.cpp 
1>c:\users\josh bradley\documents\visual studio 2008\projects\test\test\main.cpp(28) : error C2039: 'get_mysql_driver_instance' : is not a member of 'sql::mysql::MySQL_Driver' 
1>  c:\program files\mysql\mysql connector c++ 1.0.5\include\mysql_driver.h(25) : see declaration of 'sql::mysql::MySQL_Driver' 
1>c:\users\josh bradley\documents\visual studio 2008\projects\test\test\main.cpp(28) : error C3861: 'get_mysql_driver_instance': identifier not found 
1>Build log was saved at "file://c:\Users\Josh Bradley\Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm" 
1>test - 2 error(s), 0 warning(s) 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

MISE À JOUR:

Je voulais tout le monde sache que j'ai finalement trouvé comment répare mon problème. Pour toute personne ayant un problème similaire, passez au http://blog.ulf-wendel.de/?p=215#hello et lisez les instructions sur la façon de se connecter dynamiquement à mysqlcppconn.lib. Mon problème était de configurer l'environnement actuel afin qu'il se connecte correctement à la bibliothèque et ce tutoriel a énormément aidé!

Répondre

3

Vous devez d'abord changer votre code:

driver = sql::mysql::get_mysql_driver_instance(); 

Et à côté, vous devez lier votre code avec mysqlclient.lib Ajoutez le bon chemin de votre lib mysqlclient.lib sur votre projet:

Properties->Linker->General-> Additionnal Libraries 

Ici, ajoutez le chemin de votre lib.

0

L'erreur est une erreur du compilateur. Il se plaint de ne pas trouver get_mysql_driver_instance() dans l'espace de noms spécifié.

Essayez de double cliquant sur la ligne:

1>  c:\program files\mysql\mysql connector c++ 1.0.5\include\mysql_driver.h(25) : see declaration of 'sql::mysql::MySQL_Driver' 

Il vous montrera le fichier d'en-tête, et vous pouvez chercher là-bas pour vous assurer que la fonction est présente.

1

Une recherche rapide Google suggère que votre ligne devrait être:

driver = sql::mysql::get_mysql_driver_instance(); 
+0

Eh bien, je l'ai déjà essayé et je reçois l'erreur suivante reliant encore 1> main.obj: erreur LNK2019: symbole externe non résolu « __declspec (dllimport) sql class :: mysql :: MySQL_Driver * __cdecl sql: : mysql :: get_mysql_driver_instance (void) "(__imp_? get_mysql_driver_instance @ mysql @ sql @@ YAPAVMySQL_Driver @ 12 @ XZ) référencé dans la fonction _main –

+0

L'erreur de liaison indique que vous n'avez apparemment pas lié la bibliothèque appropriée. –