コードを MySQL Connector C++ 1.1.0 とリンクすると、未解決の外部シンボル エラーが発生します。
エラーメッセージは次のとおりです。
6>database.lib(db_manager.obj) : error LNK2019: unresolved external symbol
"class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" (?get_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ)
referenced in function "class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_mysql_driver_instance(void)" (?get_mysql_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ)
mysqlconn dumpbin
-static.lib でシンボルのリストを取得していたところ、同様のシンボルが見つかりました。
COMDAT; sym= "class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" (?get_driver_instance@mysql@sql@@YAPEAVMySQL_Driver@12@XZ)
この 2 行を並べると、違いは次のようになります。
(?get_driver_instance@mysql@sql@@YAPEAVMySQL_Driver@12@XZ)
(?get_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ)
YAPEAV
ANDの名前管理の違いは何YAPAV
ですか?
私の問題は、MySQL コネクタ ライブラリとコードのビルド方法との間の非互換性に関連していると考えられます。
ウェブを検索したところ、MySQL Connector 1.1.0 に対するバグが見つかりましたが、「バグではない」に変更されました。
64 ビット プラットフォームを使用して 32 ビット ターゲットにコンパイルする Visual Studio 2010 を使用しています。
MySQL コネクタ C++ はバージョン 1.1.0 です。