2013-05-09 3 views
1

EDITED:C++ Connector to MySQL

Моя проблема заключается в ошибках внизу сообщения.

Heres мой дополнительный включают в себя каталоги

C:\Program Files\boost 
C:\Program Files\MySQL\MySQL Connector C++ 1.1.3\include 
C:\Program Files\MySQL\MySQL Server 5.6\include 

Дополнительные каталоги Библиотека

C:\Program Files\MySQL\MySQL Server 5.6\lib 
C:\Program Files\MySQL\Connector C++ 1.1.2\lib\opt 

Дополнительные зависимости

libmysql.lib 
mysqlcppconn-static.lib 

Heres мой код

#include <iostream> 
#include <cstdio> 
#include <cstdlib> 
using namespace std; 

#include <stdlib.h> 
#include <Windows.h> 
#include <mysql.h> 
#include "mysql_connection.h" 

#include <cppconn/driver.h> 
#define host "localhost" 
#define username "root" 
#define password "root" 
#define database "tests" 

int main() 
{ 
    MYSQL* conn; 
    conn = mysql_init(NULL); 
    if(conn) 
    { 
     mysql_real_connect(conn, host, username, password, database, 0, NULL, 0); 
    } 
    MYSQL_RES* res_set; 
    MYSQL_ROW row; 
    unsigned int i; 
    mysql_query(conn, "SELECT * FROM tbl_clients WHERE id = 1"); 
    res_set = mysql_store_result(conn); 
    unsigned int numrows = mysql_num_rows(res_set); 
    if(numrows) 
    { 
     row = mysql_fetch_row(res_set); 
     if(row != NULL) 
     { 
      cout << "Client ID : " << row[0] << endl; 
      cout << "Client Name: " << row[1] << endl; 
     } 
    } 
    if(res_set) 
    { 
     mysql_free_result(res_set); 
    } 
    if(conn) 
    { 
     mysql_close(conn); 
    } 

    return 0; 
} 

Эти ошибки я получаю

1>------ Build started: Project: okay, Configuration: Debug Win32 ------ 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected]32 referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>welp.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main 
1>C:\Users\Damian\documents\visual studio 2012\Projects\okay\Debug\okay.exe : fatal error LNK1120: 8 unresolved externals 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Пожалуйста, помогите, этот проект должен быть представлен в около 48 часов для моего класса, и я провел так много времени, пытаясь понять это.

Благодаря

ответ

1

Уважительно, ваши последние два вопроса - вопросы компилятора/линкера. Я понимаю ваше разочарование, поскольку я знал, как правильно писать код, но ничего не знал о компиляторах/линкерах. Когда вы получите момент занять некоторое время, чтобы прочитать о:

  • заголовки
  • бинарного против объекта файла
  • библиотеки/разделяемого объект
  • компилятором
  • линкера
  • функции коверкания (C против C++)

Чтобы ответить на ваш вопрос, я предполагаю, что вы делаете это в Micros часто Visual Studio:

  1. Вы должны пойти в свойствах проекта и установить дополнительные библиотеки Paths (я вижу, что вы сделали это с вашего последнего поста)
  2. Вы должны указать библиотеку, я выхожу на конечно, здесь и предполагается, что это будет mysql.lib ... Там есть вкладка «Дополнительная библиотека» где-то в разделе Linker, вы сможете ее идентифицировать, потому что kernel32.lib будет int it. Добавьте mysql.lib в этот раздел. Подтвердите имя, перейдя в папку mysql, в которой хранятся двоичные файлы.
  3. Убедитесь, что вы используете статическую библиотеку, .dll предоставит вам новые проблемы, о которых вам не нужно беспокоиться. Обычно это достигается установкой правильного каталога библиотеки. Многие библиотеки C++ будут поставляться с предварительно скомпилированными папками «Статические» и «Динамические», содержащие правильные библиотеки.
+0

Wow спасибо за быстрый ответ, только что отредактировал мой выше пост и увидел ваш ответ. Я буду продолжать работать над этим –

+0

Да, он прав. Я пропустил, чтобы указать ** mysql.lib ** – Sanoob

+0

Ну, пока ничего не получилось. В любой папке у меня нет mysql.lib. Я знаю, что когда вы сказали, что вы просто догадываетесь, но если бы я должен был догадаться, какой он был, я бы предположил, что это будет libmysql.lib. И я включил это и еще ничего. Я читал все эти вещи, и я все еще застрял. –

1

Это ошибка происходит из-за проблемы линкера. Компонент не может найти требуемые статические или динамические библиотеки (mysql.lib, mysqlcppconn-static.lib, libmysql.dll и libmysql.lib). Неправильная настройка . Проверьте этот сайт правильно. Building MySQL Connector/C++ Windows Applications with Microsoft Visual Studio

+0

Спасибо за ответ, но я не знаю, что я делаю неправильно с этим. Я вижу, что это должно быть, вероятно, с моими дополнительными зависимостями, потому что у меня есть эти 8 ошибок, прежде чем даже поместить libmysql.dll и mysqlcppconn-static.lib в дополнительные зависимости. Когда я добавляю их в зависимости, ничего не меняется. Я знаю, что компоновщик может найти файлы тоже из-за некоторых возиться с ним, когда я обнаружил, что моя старая ошибка заключалась в том, что я не включил библиотечный каталог. Но теперь я это сделал, но эти ошибки все еще наступают –