2

問題:

わかりました。MySQL Forge Wiki のサンプル コードと、単純なデータベース接続を取得する方法に関するチュートリアルを提供している他の Web サイトをフォローしようとしましたが、何らかの理由で、私のプロジェクトは常にリンク エラーで失敗し、自分で修正する理由や方法がわかりません(まだ学習中です)。私を助けてください!プロジェクトのプロパティにヘッダー ファイルに必要なパス ディレクトリを含め、MySQL Connector/C++ で使用される lib ファイルへのパス ディレクトリを提供しました。私が使用しているコードは、誰かがそれを修正する方法について役立つヒント/コメントを私に与えることができれば、以下のとおりです。(リンクエラーのため)libファイルへの接続に関係があると思いますが、それを修正する解決策はわかりません。他の誰かがこのような問題を抱えていませんか?

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

コード:

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;
}

エラー出力:

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 ==========

アップデート:

問題を解決する方法をようやく見つけたことをみんなに知らせたかっただけです。同様の問題を抱えている人は、http: //blog.ulf-wendel.de/?p=215#hello にアクセスして、mysqlcppconn.lib に動的に接続する方法の説明を読んでください。私の問題は、実際の環境をセットアップしてライブラリに正しく接続することでした。このチュートリアルは非常に役立ちました!

4

3 に答える 3

3

最初にコードを変更する必要があります。

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

次に、コードを mysqlclient.lib にリンクする必要があります。プロジェクトにlib mysqlclient.libの正しいパスを追加します。

Properties->Linker->General-> Additionnal Libraries

ここにライブラリのパスを追加します。

于 2009-09-20T10:46:15.783 に答える
1

Google で簡単に検索すると、次のような行が表示されます。

driver = sql::mysql::get_mysql_driver_instance();
于 2009-09-20T06:56:03.200 に答える
0

エラーはコンパイラ エラーです。指定された名前空間で get_mysql_driver_instance() が見つからないと不平を言っています。

行をダブルクリックしてみてください:

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

ヘッダー ファイルが表示され、そこで検索して関数が存在することを確認できます。

于 2009-09-20T06:50:32.227 に答える