Russian Qt Forum
Май 03, 2024, 10:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: начало изучения MySQL под с++  (Прочитано 11506 раз)
Yura
Гость
« : Декабрь 18, 2008, 23:22 »

winXP, mysql-5.1.28-rc-win32, msvs2008
установил mysql, покидал либы и хэдеры в соответвующие папки msvs

пишу код:

Код
C++ (Qt)
#include <stdio.h>
#include <mysql.h>
 
MYSQL* conn;
 
void main()
{
conn=mysql_init(NULL);
mysql_real_connect(conn, "localhost", "root", "root", "mysql", 0, NULL, 0);
 
mysql_close(conn);
}
 

получил ошибки:
Код:
1>------ Build started: Project: mysqltest, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h(243) : error C2146: syntax error : missing ';' before identifier 'fd'
1>c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h(243) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h(243) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h(417) : error C2065: 'SOCKET' : undeclared identifier
1>c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h(417) : error C2146: syntax error : missing ')' before identifier 's'
1>c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h(418) : error C2059: syntax error : ')'
1>Build log was saved at "file://c:\prjmysql\mysqltest\mysqltest\Debug\BuildLog.htm"
1>mysqltest - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

хотелось бы копать в данном напрвлении, но уже в самом начале возникли проблемы
Записан
KADABRA
Гость
« Ответ #1 : Декабрь 19, 2008, 00:06 »

В 5.0 версии и так должно вроде работать, но может в 5.1 что-то поменяли - попробуй добавить ещё
#include <windows.h>
Если не поможет, то надо смотреть в mysql.h и других включаемых файлах где находится строка
#define my_socket ...
или
typedef ... my_socket;
и смотреть при каких условиях она компилируется.
Записан
Yura
Гость
« Ответ #2 : Декабрь 19, 2008, 08:06 »

в mysql.h описывается
Код
C
#ifndef my_socket_defined
#ifdef __WIN__
#define my_socket SOCKET
#else
typedef int my_socket;
#endif /* __WIN__ */
#endif /* my_socket_defined */
#endif /* _global_h */
 

может мне просто другую версию использовать? мне так-то не принципиально важно
Записан
KADABRA
Гость
« Ответ #3 : Декабрь 19, 2008, 17:56 »

А
Код
C++ (Qt)
#include <windows.h>
#include <winsock.h>
перед
Код
C++ (Qt)
#include <mysql.h>
помиогает?
Записан
Yura
Гость
« Ответ #4 : Декабрь 19, 2008, 18:24 »

пишу так:
Код
C++ (Qt)
#include <windows.h>
#include <winsock.h>
#include <mysql.h>
 
MYSQL* conn;
 
void main()
{
conn=mysql_init(NULL);
mysql_real_connect(conn, "localhost", "root", "root", "mysql", 0, NULL, 0);
 
mysql_close(conn);
}
 
 

вылезли ошибки, но уже другие:
Код:
>main.obj : error LNK2019: unresolved external symbol _mysql_close@4 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _mysql_real_connect@32 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _mysql_init@4 referenced in function _main
1>C:\prjmysql\mysqltest\Debug\mysqltest.exe : fatal error LNK1120: 3 unresolved externals
Записан
Yura
Гость
« Ответ #5 : Декабрь 19, 2008, 18:29 »

тьфу блин, проблема решилась
 забыл либы прописать в Input
добавил
libmysql.lib
mysys.lib
mysqlclient.lib
regex.lib
zlib.lib

и ещё, как использовать хедеры и либы, не копируя их в папку msvs2008 include и lib?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Декабрь 19, 2008, 18:35 »

и ещё, как использовать хедеры и либы, не копируя их в папку msvs2008 include и lib?
ну путь к ним написать:
#include "pat/to/mysql.h"
Записан

Юра.
KADABRA
Гость
« Ответ #7 : Декабрь 19, 2008, 18:35 »

Цитировать
и ещё, как использовать хедеры и либы, не копируя их в папку msvs2008 include и lib?
Прописать пути в настройках проекта, или в переменных окружения.
Записан
Yura
Гость
« Ответ #8 : Декабрь 19, 2008, 18:51 »

спасибо всем
Записан
Yura
Гость
« Ответ #9 : Декабрь 19, 2008, 20:24 »

2KADABRA

а где именно нужно прописать пути в настройках до mysql/include ?
Записан
KADABRA
Гость
« Ответ #10 : Декабрь 19, 2008, 23:21 »

2KADABRA

а где именно нужно прописать пути в настройках до mysql/include ?
Project->Properties->C++->General->Additional Include Directories
Записан
KADABRA
Гость
« Ответ #11 : Декабрь 19, 2008, 23:23 »

А чтобы для каждого проекта не выставлять, то можно тут:
Tools->Options->Projects and Solutions->VC++ Directories выбрать Include Files
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.219 секунд. Запросов: 22.