[+] Program w c++ korzystaj

Potrzebujesz pomocy z C, C++, perl, python, itp.
zbik
Posty: 7
Rejestracja: 19 września 2007, 22:13

[+] Program w c++ korzystający z bazy MySQL

Post autor: zbik »

Chcę napisać program, który korzysta z bazy MySQL.
Napisałem mały program próbny i nie potrafię go skompilować bo chyba nie mam biblioteki mysql.h.

Kod: Zaznacz cały

#include <iostream>
#include <mysql.h>
 
int main() {
	MYSQL *conn_ptr;
	conn_ptr = mysql_init(NULL);
	if (!conn_ptr) {
		std::cout << "mysql init failed\n";
		exit(1);
	}
	conn_ptr = mysql_real_connect (conn_ptr, "localhost", "user", "pass", "db", 0, NULL, 0);
	if (conn_ptr) {
		std::cout << "connection success\n";
	} else {
		std::cout << "connection faild\n";
	}
	mysql_close(conn_ptr);
	return 0;
}
Przy próbie kompilacji pojawia się taki błąd:

Kod: Zaznacz cały

zbik@debian$ g++ proba.cpp -o proba
proba.cpp:2:19: error: mysql.h: Nie ma takiego pliku ani katalogu
proba.cpp: In function ‘int main()’:
proba.cpp:5: error: ‘MYSQL’ was not declared in this scope
proba.cpp:5: error: ‘conn_ptr’ was not declared in this scope
proba.cpp:6: error: ‘mysql_init’ was not declared in this scope
proba.cpp:11: error: ‘mysql_real_connect’ was not declared in this scope
proba.cpp:17: error: ‘mysql_close’ was not declared in this scope
Mam zainstalowane gcc, g++ i dodatkowo dwa pakiety:
libmysql++-dev oraz libmysql++2c2a.

Co powinienem zrobić żeby skompilować ten program? Zainstalować dodatkowe pakiety z właściwymi bibliotekami do mysqla? Inaczej kompilować program, z dodatkowymi parametrami? Dołączyć inne biblioteki? Jakie?

Proszę o pomoc i pozdrawiam.
cepe
Posty: 31
Rejestracja: 08 czerwca 2007, 19:14
Lokalizacja: Krasnystaw / Wroc³aw

Post autor: cepe »

Popraw kod na, zamień

Kod: Zaznacz cały

#include <mysql.h>
na:

Kod: Zaznacz cały

#include <mysql/mysql.h>

Kod: Zaznacz cały

#include <iostream> 
#include <mysql/mysql.h> 
  
int main() { 
    MYSQL *conn_ptr; 
    conn_ptr = mysql_init(NULL); 
    if (!conn_ptr) { 
        std::cout << "mysql init failed\n"; 
        exit(1); 
    } 
    conn_ptr = mysql_real_connect (conn_ptr, "localhost", "user", "pass", "db", 0, NULL, 0); 
    if (conn_ptr) { 
        std::cout << "connection success\n"; 
    } else { 
        std::cout << "connection faild\n"; 
    } 
    mysql_close(conn_ptr); 
    return 0; 
}
I kompiluj poleceniem:

Kod: Zaznacz cały

g++ proba.cpp -lmysqlclient -o proba
zbik
Posty: 7
Rejestracja: 19 września 2007, 22:13

Post autor: zbik »

Zmieniłem ale to nic nie pomogło :(

Kod: Zaznacz cały

zbik@debian:$ g++ proba.cpp -lmysqlclient -o proba
proba.cpp:2:25: error: mysql/mysql.h: Nie ma takiego pliku ani katalogu
proba.cpp: In function ‘int main()’:
proba.cpp:5: error: ‘MYSQL’ was not declared in this scope
proba.cpp:5: error: ‘conn_ptr’ was not declared in this scope
proba.cpp:6: error: ‘mysql_init’ was not declared in this scope
proba.cpp:11: error: ‘mysql_real_connect’ was not declared in this scope
proba.cpp:17: error: ‘mysql_close’ was not declared in this scope
cepe
Posty: 31
Rejestracja: 08 czerwca 2007, 19:14
Lokalizacja: Krasnystaw / Wroc³aw

Post autor: cepe »

zbik: A masz zainstalowane libmysqlclient15-dev?
zbik
Posty: 7
Rejestracja: 19 września 2007, 22:13

Post autor: zbik »

Nie mam, ale też nie mogę zainstalować?

Kod: Zaznacz cały

debian:~# aptitude install libmysqlclient15-dev
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności
Reading state information... Gotowe
Odczyt dodatkowych informacji o stanie
Inicjalizacja stanów pakietów... Gotowe
Odczyt opisów zadań... Gotowe
Budowanie bazy etykiet... Gotowe
Następujące NOWE pakiety zostaną automatycznie zainstalowane:
  zlib1g-dev
Następujące NOWE pakiety zostaną zainstalowane:
  libmysqlclient15-dev zlib1g-dev
0 pakietów uaktualnianych, 2 instalowanych, 0 do usunięcia i 0 nie uaktualnianych.
Do pobrania 156kB/7154kB archiwów. Zajęte po rozpakowaniu: 20,3MB.
Kontynuować? [Y/n/?] Y
Zapisywanie dodatkowych informacji o stanie... Gotowe
Błąd [url]http://ftp.pl.debian.org[/url] lenny/main zlib1g-dev 1:1.2.3.3.dfsg-5
  404 Not Found
E: Failed to fetch [url]http://ftp.pl.debian.org/debian/pool/main/z/zlib/zlib1g-dev_1.2.3.3.dfsg-5_i386.deb:[/url] 404 Not Found
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności
Reading state information... Gotowe
Odczyt dodatkowych informacji o stanie
Inicjalizacja stanów pakietów... Gotowe
Odczyt opisów zadań... Gotowe
Budowanie bazy etykiet... Gotowe
debian:~#      
Awatar użytkownika
darkwater
Junior Member
Posty: 828
Rejestracja: 25 stycznia 2007, 14:01
Lokalizacja: Częstochowa

Post autor: darkwater »

najpierw wykonaj

Kod: Zaznacz cały

apt-get update
apt-get dist-upgrade
a dopiero potem instaluj
zbik
Posty: 7
Rejestracja: 19 września 2007, 22:13

Post autor: zbik »

Ale to wszystko jest skomplikowane.
Zrobiłem tak i już działa, program kompiluje się bez błędów.
Dziękuję.
ODPOWIEDZ