Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Проблема с mysql++


Автор: shevak 12.8.2008, 11:04
Добрый день.
Пытаюсь разобраться с работой mysql++. Вот код программы:
Код

#include <iostream>
#include <mysql/mysql++.h>
using namespace std;
using namespace mysqlpp;

int main() {
     try {
          char db[] = "test";
          char host[] = "localhost";
          char user[] = "root";
          char passwd[] = "зфыы";
          Connection c(db, host, user, passwd);
          if(c) cout << "==> Connected" << endl;
          
     } catch (Exception& e) {
          cout << "==> Error: " << e.what() << endl;
     }


При компиляции выдает 4 ошибки:
Код

4_0_1.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall mysqlpp::Connection::~Connection(void)" (__imp_??1Connection@mysqlpp@@UAE@XZ) referenced in function _main
4_0_1.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall mysqlpp::Connection::operator bool mysqlpp::Connection::*(void)const " (__imp_??BConnection@mysqlpp@@QBEPQ01@_NXZ) referenced in function _main
4_0_1.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall mysqlpp::Connection::Connection(char const *,char const *,char const *,char const *,unsigned int)" (__imp_??0Connection@mysqlpp@@QAE@PBD000I@Z) referenced in function _main


Библиотеки libmySQL.lib и MySQLpp.lib  подключил.
В чем может быть загвоздка?.

Автор: mrbrooks 12.8.2008, 11:24
не туды запостил.

зы. подключи библу к проекту.

Автор: shevak 12.8.2008, 11:44
Какую библу? libmySQL.lib и MySQLpp.lib подключил

Автор: mrbrooks 12.8.2008, 12:22
libmySQL.dll 


Автор: shevak 12.8.2008, 13:13
подключил, проблема осталась :(

Автор: mrbrooks 12.8.2008, 13:53
имхо чего ты паришься. глянь в корень мускула. там же есть пример.

Автор: shevak 12.8.2008, 13:59
вот именно, что запарился вообще, в корне мускула примеры не запускаются, им нужен файл mysqlpp_d.lib, где его взять не знаю. запускал проект с папки ..\mysql++-3.0.5\vc2008\ выдает кучу ошибок типа 'MYSQL_OPT_LOCAL_INFILE' : undeclared identifier.
И так уже второй день, разобраться не могу.

Автор: mrbrooks 12.8.2008, 14:23
уххх. а чего такой раритет юзаешь?

Автор: shevak 12.8.2008, 14:28
Цитата

а чего такой раритет юзаешь? 


скачал с mysql.com (http://tangentsoft.net/mysql++/), вроде последняя версия.

Автор: pycha 12.8.2008, 15:12
извините я в этом SQL ничего пока не знаю, но то что return 0; нет - это так надо?

Автор: cutwater 12.8.2008, 15:16
Если честно не помню уже... но по идее компилятор в таком виде по окончанию ф-ции добавит 
Код

return EXIT_SUCESS;

Автор: pycha 12.8.2008, 15:48
Цитата(cutwater @  12.8.2008,  15:16 Найти цитируемый пост)
 компилятор в таком виде

хотя это мне пока не надо но интересно, всмысле при использовании try - catch?

Автор: shevak 12.8.2008, 15:59
добавление в конец return 0 толку не дает. 

Автор: pycha 12.8.2008, 16:15
обычно такие ошибки возникают когда функция обьявлена а нет ее реализации.  Это может быть если не подключил файл с реализацией

Автор: shevak 12.8.2008, 16:50
тогда подскажите как правильно подключить dll к проекту 

Автор: cutwater 12.8.2008, 18:27
Ну ты хоть укажи компилятор и версию. Хотя я так понимаю что Visual studio
либо #pragma comment(lib, 'your_lib_file.lib')
либо в настройках проекта пункт Linker - там смотри.

2 pycha 
Имеется ввиду для main в котором не описан return. я ж сказал, что точно не помню.. но для main без return такое возможно. к обработке исключений точно отношения не имеет.

Добавлено через 2 минуты и 30 секунд
И вообще совет, не только код выкладывать, а и версию компилятора, что делал (как подключал либы, раз гришь что они у тебя подключены) и т.п., все что может помочь дать правильный ответ. (просто скромный совет на будущее)

Автор: shevak 13.8.2008, 09:08
Версия - Visual C++ 2008, lib подключал в Property Pages->Linker-> Input->Additional Dependencie. Как подключить отдельно dll не понял, попробовал тупо добавить в проект - не помогло. 

Автор: shevak 13.8.2008, 14:22
проблема была с неправильными файлами mysql.h, mysql_version.h, скачал для не той версии файлы. Всем спасибо за советы.

Автор: triclosan 14.8.2008, 21:35
директорию, где либы искать линкеру указал?

я бы не юзал 
Код

using namespace std;
using namespace mysqlpp;


у тебя два неймспейса юзаеццо, откуда компилятор знает какой куда. Указывай в явном виде лучше.

а DLL для рантайма, а не для компиляции. Подключать ее просто - в папку с проектом или в места, указанные в SYSTEM PATH

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)