17. november 2005 - 10:01
Der er
26 kommentarer og 2 løsninger
Connection til mysql db fra linux
Jeg skal have lavet en connection til en mysql database fra linux af. Men jeg får en mærkelig compiler fejl. /tmp/ccKPPAZQ.o(.eh_frame+0x11): undefined collect2: ld returnerede afslutningskoden 1 Her er koden #include <stdlib.h> #include <stdio.h> #include <mysql.h> int main(int argc, char *argv[]) { MYSQL *conn_ptr; conn_ptr = mysql_init(NULL); if (!conn_ptr) { fprintf(stderr, "mysql_init failed\n"); return EXIT_FAILURE; } conn_ptr = mysql_real_connect(conn_ptr, "192.168.72.172", "root", "kommet", "brugere", 0, NULL, 0); if (conn_ptr) { printf("Connection succes\n"); } else { printf("Connection failed\n"); } mysql_close(conn_ptr); return EXIT_SUCCESS; }
Annonceindlæg fra DE-CIX
17. november 2005 - 10:31
#1
hvordan ser din build kommando ud ?
17. november 2005 - 12:04
#2
gcc -I/usr/include/mysql database.c -L/usr/lib/mysql -lmysqlclient -lz -o database.out
18. november 2005 - 22:57
#3
det ser jo umiddelbart OK ud den skriver ikke hvad der er undefined ??
19. november 2005 - 18:55
#4
Nej det skriver bare /tmp/ccKPPAZQ.o(.eh_frame+0x11): undefined collect2: ld returnerede afslutningskoden 1 når jeg forsøger og compile. Og jeg bruger bare gcc, jeg er ikke helt klar over hvilken version det er...
19. november 2005 - 20:15
#5
det ser meget rigtigt ud suk
19. november 2005 - 22:43
#6
Skulle jeg prøve med en anden compiler??? Lige et hurtigt side spørgsmål. Hva er nemmest og bruge når man laver grafiske programmer i c++ til linux. GTK+ eller QT?
19. november 2005 - 22:44
#7
på linux har du ikke andre muligheder end GCC men du kunne altid prøve en update
19. november 2005 - 22:44
#8
jeg har aldrig brugt hverken QT eller GTK+
19. november 2005 - 22:46
#9
Jeg prøver lige og skrive det i c++, og bruge g++ i stedet
19. november 2005 - 22:56
#10
det tvivler jeg på hjælper, men måske kan det give en bedre fejlbesked
21. november 2005 - 10:43
#11
Det virker fint med g++ compiler og denne her kode #include <iostream.h> #include </usr/include/mysql/mysql.h> int main(int argc, char *argv[]) { MYSQL *conn_ptr; conn_ptr = mysql_init(NULL); if (!conn_ptr) { cout << stderr, "mysql_init failed\n"; return EXIT_FAILURE; } conn_ptr = mysql_real_connect(conn_ptr, "192.168.72.172", "root", "kommet", "brugere", 0, NULL, 0); if (conn_ptr) { cout << "Connection succes\n"; } else { cout << "Connection failed\n"; } mysql_close(conn_ptr); return EXIT_SUCCESS; }
21. november 2005 - 10:55
#12
Som Bent Larsen engang sagde: man skal se meget førend man slider hul i brille glassene !
21. november 2005 - 11:04
#13
Hehe. Du har ingen anelse om hva problemet kan være? Det er egentlig også lige meget, laver det bare i c++
21. november 2005 - 11:06
#14
nope
21. november 2005 - 11:13
#15
Nå så lukker jeg spørgsmålet
21. november 2005 - 11:14
#16
Du kan også smide et svar. Så deler vi pointene som tak for hjælpen
21. november 2005 - 11:15
#17
svar
21. november 2005 - 11:17
#18
21. november 2005 - 12:40
#19
Nej men lyder da som en god ide. Jeg får connection failed når jeg eksekverer koden. Er det ikke den rigtige måde jeg skriver ip adr. på MySQL serveren?
21. november 2005 - 12:43
#20
jo, men prøv at udskriv: mysql_error(conn_ptr)
21. november 2005 - 12:47
#21
Den skriver lagersegmentfejl
21. november 2005 - 12:50
#22
Og jeg bruger et program der hedder navicat på linux maskienen, som bruges til og administrere databasen. Og den kan fint lave en connection, så det er ikke pga. af en firewall der er sat op på serveren. men hva betyder lagersegmenfejl?
21. november 2005 - 12:51
#23
jeg ser lige at du assigner fra mysql_real_connect til conn_ptr - det skal du ikke men det er næppe skyld i fejlen
21. november 2005 - 12:52
#24
lagersegmenfejl = brug af memory problem (typisk noget forkert pointer)
21. november 2005 - 12:55
#25
Jeg tror jeg vil prøve og bruge det eksempel du skriver i din artikel så. Så jeg prøver MySQL++ API, jeg synes koden er nem og overskuelig
21. november 2005 - 13:23
#26
Jeg får 3 siders compiler fejl, når jeg includer #include "/usr/include/sqlplus/sqlplus.hh" Hvordan kan det være?
21. november 2005 - 20:52
#27
svært at sige uden at se fejlene ... :-)
21. november 2005 - 22:19
#28
Ja det er rigtigt nok. Det har sikkert noget og gøre med at det er meget compiler specifikt, som du skrev i din artikel. Så jeg må hellere til og kigge noget mere på det, så finder jeg nok ud af det. :) Men jeg troede egentlig det var MySQL der havde udgivet MySQL++ API'et, eller AB som firmaet hedder.
Kurser inden for grundlæggende programmering