Avatar billede superjma Nybegynder
04. juli 2004 - 13:04 Der er 12 kommentarer og
1 løsning

MySQL tilgang

Jeg har læst artiklen http://www.eksperten.dk/artikler/282, men denne vil ikke kompilere på min maskine (debian).

Jeg har installeret libmysqlclient-dev og gcc og g++, men ingen alligevel siger den "mysql.h: No such file or directory".

Er der nogle der ved hvorfor?

Hvordan løser jeg dette?

Jeg har ikke den store erfaring med at programmere C eller C++, så jeg skrev bare eksemplerne fra artiklen ind og forsøgte at kompilere.
Avatar billede arne_v Ekspert
04. juli 2004 - 14:01 #1
Du skal compile med en kommando lidt lignende:

gcc -I/usr/include/mysql query.c /usr/lib/mysql/libmysqlclient.a -lz -o query

(muligvis skal stierne rettes til)
Avatar billede arne_v Ekspert
04. juli 2004 - 14:01 #2
282 har en "forhistorie" i http://www.eksperten.dk/artikler/206
Avatar billede arne_v Ekspert
04. juli 2004 - 14:02 #3
Men man skal forklare compileren hvor den skal lede efter mysql.h med -I flaget
Avatar billede superjma Nybegynder
04. juli 2004 - 17:45 #4
Tak. Compilingen gik bedre nu.. Nu fandt den mysql.h.

Skulle dog bruge /usr/lib/libmysqlclient.a uden et mysql-bibliotek.

Men nu får jeg nogle andre fejl. Dette er blot de 2 første. Jeg antager at resten bunder i samme problem.

undefined reference to `std::cerr'
undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
Avatar billede arne_v Ekspert
04. juli 2004 - 17:49 #5
Bruger du gcc eller g++ til at compile med ?

Hvis gcc så prøv med g++ !
Avatar billede arne_v Ekspert
04. juli 2004 - 17:50 #6
Altså:

g++ -I/usr/include/mysql query.c /usr/lib/libmysqlclient.a -lz -o query
Avatar billede superjma Nybegynder
04. juli 2004 - 17:54 #7
Det er lige meget, hvilken. Begge giver fejl. G++ giver flg.
/usr/lib/libmysqlclient.a(viossl.o)(.text+0x81): In function `sslaccept':
: undefined reference to `SSL_new'
/usr/lib/libmysqlclient.a(viossl.o)(.text+0xc6): In function `sslaccept':
: undefined reference to `ERR_get_error_line_data'

Disse fejl kan jeg dog se også findes med gcc, dog længere nede. Compilerer jeg med c++ løser det altså nogle af fejlene.. Men der er stadig en række fejl ala ovenstående.
Avatar billede arne_v Ekspert
04. juli 2004 - 18:05 #8
Godt spørgsmål - den mangler noget SSL.

Virker det selvom der er de fejl ?

Har du openssl installeret på systemet ?

Hvilken version af MySQL bruger du ?
Avatar billede superjma Nybegynder
04. juli 2004 - 18:38 #9
Ja det har jeg. Jeg har også libwww-ssl0 og libssl-dev installeret. (ved ikke om der er andre jeg mangler.. men det er der jo tilsyneladende)

Min mysql er 4.0.16-2.
Avatar billede arne_v Ekspert
04. juli 2004 - 19:09 #10
Prøv og put -lssl på kommando linien
Avatar billede superjma Nybegynder
04. juli 2004 - 19:25 #11
Tusind tak. Det virkede.. Det havde jeg aldrig gættet selv.

Hvorfor kan den ikke selv finde ud af det? Det kan php, perl og Java...
Avatar billede arne_v Ekspert
04. juli 2004 - 19:51 #12
På nogen måder er C og C++ lidt mere "low level".
Avatar billede arne_v Ekspert
04. juli 2004 - 19:52 #13
Nu vil jeg også ligge et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester