Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/46: Рейтинг темы: голосов - 46, средняя оценка - 4.65
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12

Рабочий пример кода для работы с MySQL =< 5.1 на С++

10.02.2011, 19:26. Показов 9828. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу прошу прощения, если раздел не тот. Про раздел FreeBSD видимо просто забыли.

Постановка задачи.

Простой пример кода на С++ ,который успешно компилируется для ОС FreeBSD 8.1.

Сервер MySQL 5.1 установлен и настроен.

Файлы инклюдить пробую с /usr/local/include/mysql/mysql.h

Несколько примеров нашел тут на форуме. Например.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include </usr/local/include/mysql/mysql.h>
#include <iostream>
using namespace std;
 
MYSQL mysql;
//-------------------------------------------------------------------------------
void exiterr(int exitcode);
//===============================================================================
int main(){
 
        mysql_init(&mysql);             
        if(!mysql_real_connect(&mysql, "localhost", "root", "pass", "test", 3036, NULL, 0))
                exiterr(1);
        mysql_close(&mysql);
        return 0;
}
//===============================================================================
void exiterr(int exitcode){
//      fprintf(stderr, "%s\n", mysql_error(&mysql)); Си вариант
        std::cout << mysql_error(&mysql)<<"\n";
        exit(exitcode);
}
Компилировать пытаюсь в Kdevelop 4.1.0.

Он меня забрасывает ошибками.

/usr/home/Admin/projects/alexaupload/build> make
Scanning dependencies of target alexaupload
[100%] Building CXX object CMakeFiles/alexaupload.dir/main.cpp.o
/usr/home/Admin/projects/alexaupload/main.cpp:22:2: warning: no newline at end of file
Linking CXX executable alexaupload
CMakeFiles/alexaupload.dir/main.cpp.o(.text+0x1ae): In function `exiterr(int)':
/usr/home/Admin/projects/alexaupload/main.cpp:20: undefined reference to `mysql_error'
CMakeFiles/alexaupload.dir/main.cpp.o(.text+0x1f9): In function `main':
/usr/home/Admin/projects/alexaupload/main.cpp:11: undefined reference to `mysql_init'
CMakeFiles/alexaupload.dir/main.cpp.o(.text+0x23d):/usr/home/Admin/projects/alexaupload/main.cpp:12: undefined reference to `mysql_real_connect'
CMakeFiles/alexaupload.dir/main.cpp.o(.text+0x25e):/usr/home/Admin/projects/alexaupload/main.cpp:14: undefined reference to `mysql_close'
*** Error code 1

Stop in /usr/home/Admin/projects/alexaupload/build.
*** Error code 1

Stop in /usr/home/Admin/projects/alexaupload/build.
*** Error code 1

Stop in /usr/home/Admin/projects/alexaupload/build.
*** Ошибка ***
Если кто образумит как это сделать буду весьма благодарен. Все что я прошу, это поняньчить меня немножко чтоб я смог вникнуть в суть реализации вопроса. На С++ писал достаточно давно, несколько шокирован сколько всего изменилось.

За ранее очень и очень благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2011, 19:26
Ответы с готовыми решениями:

Рабочий пример (исходник) терминала для работы с COM-портом
Здравствуйте, нет ли у кого нибудь рабочего примера(исходника) терминала для работы с COM-портом для Delphi7? Заранее благодарю!

Требуется рабочий пример для последующего разбора работы с observablecollection
Требуется рабочий пример для последующего разбора работы с observablecollection и его интерфейса INotifiPropertyChanged для сохранения,...

Пример кода соединения с MySQL
Братья по Java! Киньте, плиз, ма-а-ахонький фрагмент кода, где происходит коннекшн с БД посредством MySQL и, желательно, с небольшими...

22
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.02.2011, 20:00
Цитата Сообщение от ArniXXX Посмотреть сообщение
undefined reference to `mysql_error'
Цитата Сообщение от ArniXXX Посмотреть сообщение
undefined reference to `mysql_init'
Цитата Сообщение от ArniXXX Посмотреть сообщение
undefined reference to `mysql_real_connect'
Цитата Сообщение от ArniXXX Посмотреть сообщение
undefined reference to `mysql_close'
ошибка банальна до нехочу.
вот: MySQL, не получается законнектиться из приложения читать с конца.

Добавлено через 1 минуту
Цитата Сообщение от ArniXXX Посмотреть сообщение
Про раздел FreeBSD видимо просто забыли.
в данном вопросе, ОС, не имеет никакого значения. на вендус, при использовании gcc, линковка бы производилась таким же образом.
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
10.02.2011, 20:45  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
ошибка банальна до нехочу.
вот: MySQL, не получается законнектиться из приложения читать с конца.
в данном вопросе, ОС, не имеет никакого значения. на вендус, при использовании gcc, линковка бы производилась таким же образом.
Ну все таки FreeBSD это Linux .


Если я правильно понял вашу мысль, то мне нужна некая библиотека получается? libmysqlclient-dev, для FreeBSD?
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.02.2011, 20:58
libmysqlclient-dev походу у вас уже установлен. иначе бы у вас были вдобавок другие ошибки.
вам нужно добавить к линковке: -lmysqlclient

Добавлено через 2 минуты
по приведенной ссылке, возьмите последний мой пример кода, и скомпилируйте его из консоли так, как показано в том самом посте.

Добавлено через 2 минуты
и еще. если мне память не изменяет, то во FreeBSD, она зовется libmysqlclient-devel

Добавлено через 20 секунд
сделайте поиск по портам.
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
10.02.2011, 21:11  [ТС]
Подскажите пожалуйста хоть в двух словах как и куда это добавить. Ну честно, только начал разбираться с всем этим. Думал все просто, разберусь на ура. Оказалось что все не так просто, и статей хороших в интернете очень мало.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.02.2011, 21:48
для начала скомпильте в консоле, как показано в этом посте: MySQL, не получается законнектиться из приложения
код, используйте любой(свой/мой), по желанию.
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
10.02.2011, 22:27  [ТС]
Я прекрасно понимаю что делаю что-то не то, но что то делать лучше чем бездействовать

Admin@pcbsd] /home/Admin/projects/alexaupload# g++ main.cpp
/var/tmp//ccqZaPvm.o(.text+0x1ae): In function `exiterr(int)':
: undefined reference to `mysql_error'
/var/tmp//ccqZaPvm.o(.text+0x1f9): In function `main':
: undefined reference to `mysql_init'
/var/tmp//ccqZaPvm.o(.text+0x23d): In function `main':
: undefined reference to `mysql_real_connect'
/var/tmp//ccqZaPvm.o(.text+0x25e): In function `main':
[Admin@pcbsd] /home/Admin/projects/alexaupload# g++ -o 1 -I/usr/local/include/mysql/ -L/usr/local/include/mysql/ -l mysqlclient main.cpp
/usr/bin/ld: cannot find -lmysqlclient
[Admin@pcbsd] /home/Admin/projects/alexaupload# g++ -o 1 -I/usr/local/include/mysql/ -L/usr/local/include/mysql/ main.cpp
/var/tmp//cc6rH32M.o(.text+0x1ae): In function `exiterr(int)':
: undefined reference to `mysql_error'
/var/tmp//cc6rH32M.o(.text+0x1f9): In function `main':
: undefined reference to `mysql_init'
/var/tmp//cc6rH32M.o(.text+0x23d): In function `main':
: undefined reference to `mysql_real_connect'
/var/tmp//cc6rH32M.o(.text+0x25e): In function `main':
: undefined reference to `mysql_close'
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.02.2011, 23:01
покажите вывод "ls -l /usr/lib/libmysql*"

Добавлено через 59 секунд
Цитата Сообщение от ArniXXX Посмотреть сообщение
/usr/local
а почему local ?
вы из исходников собирали mysql?
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
10.02.2011, 23:03  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
покажите вывод "ls -l /usr/lib/libmysql*"
Да нету у меня такой папки .

[Admin@pcbsd] /usr/ports/devel/libtool# ls -l /usr/lib/libmysql
ls: /usr/lib/libmysql: No such file or directory
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.02.2011, 23:07
Цитата Сообщение от ArniXXX Посмотреть сообщение
нету у меня такой папки
я не папку ищу.

Цитата Сообщение от ArniXXX Посмотреть сообщение
[Admin@pcbsd] /usr/ports/devel/libtool# ls -l /usr/lib/libmysql
звездочку в конце забыли
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
10.02.2011, 23:12  [ТС]
Ах вот оно что. Ну могли и просто спросить

[Admin@pcbsd] /usr/ports/databases/mysql++# ls -l /usr/lib/libmysql*
ls: No match.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.02.2011, 23:14
хм.. странно... хидеры есть, а либ нет.
ставьте devel пакет, и после проверьте.
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
11.02.2011, 20:45  [ТС]
Я вот и ищу как этот пакет называется ...

Добавлено через 21 час 16 минут
Уже немного разобрался, надеюсь истина уже рядом.

1. Kdevelop дает возможность указать путь к заголовочным файлам. И после этого редактор кода больше не подчеркивает ошибку в строке если файл заголовка не правильный. Но как оказалось, (приметочку в низу диалового окна наконецто заметил) это не означает что заголовочные файлы будут подключены на стадии компиляции.

2. Kdevelop использует для сборки проекта Cmake. Потому танцы с бубном нужны именно для него.


Есть кто из форумчан кто использовал cmake и может подсказать как в нем прописать подключение заголовочных файлов?
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
11.02.2011, 20:56
ArniXXX, забудьте про Kdevelop
он бажный до немогу.
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
11.02.2011, 23:37  [ТС]
И что вы предлагаете? Надеюсь не emacs .

По поводу багов трудно сказать. Работает без проблем. Я уже програмки писал. Но вот не думал я что такая проблема с MySQL получится.

Добавлено через 2 часа 29 минут
Народ, ставлю вопрос чуток иначе.

Как и в чем под FreeBSD скомпилировать самый просто пример с подключением и одним запросом к MySQL.

Ну неужели на форме нет человека котоый хоть в двух словах скажет как он это делает?
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
11.02.2011, 23:48
как я показывал:
g++ -o exename source.cpp -llibraries
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
12.02.2011, 00:29  [ТС]
[Admin@pcbsd] /home/Admin/projects/test5# g++ -o exename main.cpp -llibraries
main.cpp:22:2: warning: no newline at end of file
/usr/bin/ld: cannot find -llibraries
Исходный код в первом посте

Это все вобще может быть связано что у меня на самом деле PCBSD и мускуль собирался не из сорцов?

Добавлено через 17 минут
Нет дело не в этом, только что попытался откомпилить под чистой freebsd где все ставилось из сорцов.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
12.02.2011, 00:56
Цитата Сообщение от ArniXXX Посмотреть сообщение
libraries
ну так это как пример. вписывайте имена либ.

Добавлено через 43 секунды
уже несколько раз вам показывал команду компилирования.
0
 Аватар для ArniXXX
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 12
12.02.2011, 00:59  [ТС]
[Admin@pcbsd] /home/Admin/projects/test5# g++ -o exename main.cpp -/usr/local/includes/mysql/mysql.h
g++: unrecognized option '-/usr/local/includes/mysql/mysql.h'
/var/tmp//cccXjh7W.o(.text+0x1ae): In function `exiterr(int)':
: undefined reference to `mysql_error'
/var/tmp//cccXjh7W.o(.text+0x1f9): In function `main':
: undefined reference to `mysql_init'
/var/tmp//cccXjh7W.o(.text+0x23d): In function `main':
: undefined reference to `mysql_real_connect'
/var/tmp//cccXjh7W.o(.text+0x25e): In function `main':
: undefined reference to `mysql_close'
Примерно так?
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
12.02.2011, 01:07
Цитата Сообщение от ArniXXX Посмотреть сообщение
-/usr/local/includes/mysql/mysql.h
это что за команда?

g++ -o exename main.cpp -lmysqlclient
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2011, 01:07
Помогаю со студенческими работами здесь

Ищу рабочий пример клиент-серверного приложения для передачи файлов по сети
Ищу рабочий пример клиент-серверного приложения для передачи файлов по сети Если у кого-то имеется подобное или кто-нибудь где-нибудь...

Ишу рабочий пример клиент-серверного приложения для передачи файлов по сети
Сабж. Если у кого-то имеется подобное или кто-нибудь где-нибудь видел, поделитесь) Сколько я уже примеров видел, и сам писал, и не раз...

Ишу рабочий пример клиент-серверного приложения для просмотра списка процессов через сеть
Если у кого-то имеется подобное или кто-нибудь где-нибудь видел, поделитесь)

Рабочий компьютер для работы с трансляций семинаров
Добрый день. Подскажите какие комплектующие выбрать. Нужен компьютер с которого будет вестись трансляция семинаров HD на нескольких...

Разъяснение работы кода для работы с документом Word
Помогите пожалуйста разобраться с кодом построчно, не совсем понятен принцип действия var d = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru