2012-01-13 8 views
2

私は自分自身にWindowsプログラミングとVisual Studioに詳しいプロジェクトを与えました。私はMySQLライブラリにリンクしているので、私のプロジェクトで使用することができません。 LNK2019エラーが発生しています。これは、.libファイルを正しくリンクしていない可能性が最も高いと考えられます。私はすでにインクルードディレクトリとライブラリディレクトリを含むようにその設定を行っています。 (私はまた、VC++ディレクトリを設定し、C/C++ /リンカのさまざまな組み合わせを試してみました。)ここで Visual Studio 2010 - MySQLをリンクする

Error 1 error LNK2019: unresolved external symbol [email protected] referenced in function "public: void __thiscall Database::connect_db(void)" ([email protected]@@QAEXXZ) D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\swtPrice Server\Database.obj 
Error 2 error LNK2019: unresolved external symbol [email protected] referenced in function "public: void __thiscall Database::connect_db(void)" ([email protected]@@QAEXXZ) D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\swtPrice Server\Database.obj 
Error 3 error LNK1120: 2 unresolved externals D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.exe 1 

は私がオンラインコピーしたコードのスニペットで、コンパイルしようとしている:私は設定さ

MYSQL *connection, mysql; 
MYSQL_RES *result; 
MYSQL_ROW row; 
int query_state; 

mysql_init(&mysql); 
//connection = mysql_real_connect(&mysql,"host","user","password","database",0,0,0); 
connection = mysql_real_connect(&mysql,"localhost","bainm","not_telling","cpp_data",0,0,0); 
if (connection == NULL) { 
    //cout << mysql_error(&mysql) << endl; 
    //return 1; 
} 

を私MySQLのインクルードディレクトリをインクルードするプロジェクト。これは、C/C++]タブの下で、コマンドラインでどのように見えるかです:

/I"D:\Program Files\MySQL\MySQL Server 5.5\include" /ZI /nologo /W1 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu"StdAfx.h" /Fp"Debug\swtPrice Server.pch" /Fa"Debug\" /Fo"Debug\" /Fd"Debug\vc100.pdb" /Gd /analyze- /errorReport:queue 

が、私は、MySQLのライブラリディレクトリを含むように私を設定しました。これは、リンカの下で、コマンドラインでどのように見えるかです:すべてのヘルプは高く評価され

Directory of D:\Program Files\MySQL\MySQL Server 5.5\lib 

05/06/2011 10:38 AM <DIR>   . 
05/06/2011 10:38 AM <DIR>   .. 
05/06/2011 10:38 AM <DIR>   debug 
03/31/2011 04:53 PM   4,177,408 libmysql.dll 
03/31/2011 04:53 PM   23,920 libmysql.lib 
03/31/2011 04:52 PM  10,625,266 mysqlclient.lib 
05/06/2011 10:38 AM <DIR>   plugin 

/OUT:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.exe" /NOLOGO /LIBPATH:"D:\Program Files\MySQL\MySQL Server 5.5\lib" "D:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Debug\swtPrice Server.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.pdb" /SUBSYSTEM:CONSOLE /PGD:"D:\Media\Documents\Visual Studio 2010\Projects\swtPrice Server\Debug\swtPrice Server.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE 

これは、MySQLライブラリのディレクトリがどのように見えるかです。助けをありがとうございました。

+1

ビルドにmysqlclient.libを追加しようとしましたか?また、32ビットライブラリがあることを確認してください。同様の問題があることを思い出してください。 –

+0

それはそれでした。私は、mySQLをアンインストールし、32ビット版をインストールし、私のコードはうまくコンパイルされました。以前は、約1年前にインストールされた64ビット版のmySQLがありました。 しかし、私は今、 "libmysql.dllがあなたのコンピュータにないためにプログラムを起動できません。この問題を解決するためにプログラムを再インストールしてみてください。" そのアドバイスをありがとうございます。 – swtdrgn

+0

これを実行しました。誰も.dllファイルパスを指定する方法を知っていますか?同じディレクトリ.exeに.dllをスローするのではなく、 – swtdrgn

答えて

3

VisualStudio2010のすべてのmysql API関数のリンクエラーを取得するのと同じ問題が発生しました。この問題は、Visual Studioで64ビットのMySQLビルドを使用している32ビットターゲットを使用していることが原因であることを確認しました。ビルド設定にx64ビルドを追加し、エラーなしでリンクしました

+0

これは私の問題を解決しました – Laurence

関連する問題