MySQL, Connector / C ++ Library Linking Ошибка ОШИБКИ - PullRequest
2 голосов
/ 20 сентября 2009

ПРОБЛЕМА:

Хорошо, я пытался следовать примеру кода на MySQL Forge Wiki и некоторых других веб-сайтах, которые предлагают учебное пособие о том, как получить простое соединение с базой данных, но по какой-то причине мой проект всегда терпит неудачу при ошибке компоновки и я не могу понять, почему или как это исправить сам (я все еще учусь). ПОМОГИТЕ МНЕ, ПОЖАЛУЙСТА! Я включил каталог пути, необходимый для заголовочных файлов, в свойствах проекта И предоставил каталог пути к файлам lib, которые используются в MySQL Connector / C ++. Код, который я использую, приведен ниже, если кто-то может дать мне полезную подсказку / комментарий о том, как это исправить. Я думаю, что это как-то связано с подключением к файлам 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 ==========

UPDATE:

Я просто хотел, чтобы все знали, что я наконец-то узнал, как решить мою проблему. Если у вас возникла подобная проблема, перейдите по адресу http://blog.ulf -wendel.de /? P = 215 # hello и прочитайте инструкции по динамическому подключению к mysqlcppconn.lib. Моя проблема заключалась в настройке реальной среды, чтобы она правильно подключалась к библиотеке, и этот урок очень помог!

Ответы [ 3 ]

3 голосов
/ 20 сентября 2009

Вы должны сначала изменить свой код:

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

И затем, вы должны связать свой код с mysqlclient.lib Добавьте правильный путь к вашей lib mysqlclient.lib в вашем проекте:

Properties->Linker->General-> Additionnal Libraries

Здесь добавьте путь вашей библиотеки.

1 голос
/ 20 сентября 2009

Быстрый поиск в Google показывает, что ваша строка должна выглядеть так:

driver = sql::mysql::get_mysql_driver_instance();
0 голосов
/ 20 сентября 2009

Ошибка является ошибкой компилятора. Он жалуется, что не может найти 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'

Он покажет вам файл заголовка, и вы можете выполнить поиск там, чтобы убедиться, что функция присутствует.

...