0

Visual C++ 2010 環境での将来のコマンド ライン プログラムがあります。適切にビルドおよびインストールされた MySQL++ ライブラリを使用しています。

まず、stdafx.h でいくつかのグローバルを定義しています (プログラムは非常に単純化されているため、基本的にすべてのヘッダーのニーズにこのファイルを使用し、他のヘッダー ファイルは使用しません。ヘッダー ファイルには通常の「#if !defined」があります。.. . "#endif" ラッピング. リンカは文句を言います:

Error   2   error LNK2005: "__int64 last_local_time" (?last_local_time@@3_JA) already defined in coreprocessing.obj C:\Tsukasa\ilya\DataImporter\DataImporter\stdafx.obj
Error   3   error LNK2005: "bool debug" (?debug@@3_NA) already defined in coreprocessing.obj    C:\Tsukasa\ilya\DataImporter\DataImporter\stdafx.obj
Error   4   error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > user" (?user@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) already defined in coreprocessing.obj   C:\Tsukasa\ilya\DataImporter\DataImporter\stdafx.obj
Error   5   error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > server" (?server@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) already defined in coreprocessing.obj   C:\Tsukasa\ilya\DataImporter\DataImporter\stdafx.obj

その他のリンカー エラーは、Mysql++ ライブラリに関連しています。

Error   9   error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall mysqlpp::Query::`vbase destructor'(void)" (__imp_??_DQuery@mysqlpp@@QAEXXZ) referenced in function "class mysqlpp::Query * __cdecl connectToDb(void)" (?connectToDb@@YAPAVQuery@mysqlpp@@XZ)   C:\Tsukasa\ilya\DataImporter\DataImporter\coreprocessing.obj
Error   10  error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall mysqlpp::DateTime::operator __int64(void)const " (__imp_??BDateTime@mysqlpp@@QBE_JXZ) referenced in function "class mysqlpp::Query * __cdecl connectToDb(void)" (?connectToDb@@YAPAVQuery@mysqlpp@@XZ)  C:\Tsukasa\ilya\DataImporter\DataImporter\coreprocessing.obj

プロパティの「ライブラリディレクトリ」にはMySQL ++のLIBフォルダーのパスが含まれていますが、構成はデバッグであり、LIBフォルダーに次のファイルがあります:** mysqlpp_d.dll mysqlpp_d.lib **。

誰かが私が間違っていたことの洞察を手伝ってくれれば幸いです。

4

2 に答える 2

0

奇妙ですが、事前定義されたいくつかのグローバル変数を .h から .cpp ファイルに移動すると、残りのリンクの問題が解決されました。.h ファイルは .cpp ファイルと同じコードではありませんか?

于 2012-08-12T16:28:44.093 に答える
0

エラー 9 と 10 は、ライブラリ mysqlpp.lib/mysqlpp_d.lib を [プロジェクト プロパティ] > [リンカー] > [追加の依存関係] に追加するのを忘れたためです。

そのため、VC ディレクトリへのパスをインクルードとライブラリに追加するだけでは十分ではありませんでした。

于 2012-08-12T15:55:06.327 に答える