Tirador Opublikowano 14 Lipca 2004 Zgłoś Opublikowano 14 Lipca 2004 Witam. Usiłuję napisać program w C++ (na razie kombinuję z konsolą, ale później chciałbym napisać to dla Windows'ów), który łączyłby się z serwerem MySQL uruchomionym na moim kompie. Zainstalowałem sobie serwer, do projektu w C skopiowałem i dołączyłem pliki nagłówkowe (mysql.h i te, których on wymaga) i właściwie na tym kończą się moje sukcesy. Oto, co piszę: #include <iostream>#include <stdlib.h>#include "include/mysql.h"int main(){ MYSQL *myconnection = mysql_init(NULL); system("PAUSE"); return 0;} A kompilator (Bloodshed DevC++) daje mi komunikat: [Linker error] undefined reference to `mysql_init@4' Ktoś próbował kiedyś napisać taki programik? Mógłby podzielić się wiedzą? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 14 Lipca 2004 Zgłoś Opublikowano 14 Lipca 2004 Musisz dolaczyc jeszcze do projektu biblioteke z funkcjami mysql... libmysql.lib, poczytaj dokladniej w manualu, tam masz zreszta nawet przykladowe kody. Nie wiem niestety jak sie w DEV-C++ dodaje lib'y, ale to IDE do gcc, wiec mozesz poprostu recznie dodac parametr -lmysql Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Tirador Opublikowano 15 Lipca 2004 Zgłoś Opublikowano 15 Lipca 2004 Kombinuję dalej, choć efekty są póki co mizerne. Czy mógłbyś sprecyzować jaki manual masz na myśli (a jeszcze lepiej - podać link do niego). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 15 Lipca 2004 Zgłoś Opublikowano 15 Lipca 2004 http://dev.mysql.com/doc/mysql/en/Building...ng_clients.html http://dev.mysql.com/doc/mysql/en/C_API_li...g_problems.html A przykladowy progs masz w mysql/examples Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Tirador Opublikowano 16 Lipca 2004 Zgłoś Opublikowano 16 Lipca 2004 Jest taka piosenka grupy Queen "I'm going slightly mad"... Uspokoiłem się, zebrałem myśli i mogę napisać tego posta. Zacznę od linków manuala, które mi wskazałeś (dzięki, że mnie nie zrugałeś "że sam nie poszukałem"). Zastanawiam się, czemu wszystkie źródła jakie znalazłem, łącznie z książką, którą znam już prawie na pamięć, traktują jedynie o Linuxie/Unixie. Wszędzie są podane przykładowe katalogi linuxowe, komendy linuxowe, tak jakby Windows wcale nie istniał. Może brzmi to śmiesznie (w końcu co za problem napisać "C:mysqllib" zamiast "/usr/lib/mysql"), ale gdy piszę na przykład '-L"C:mysqllib" -lmysqlclient -lz', DevCpp wywala mi, że nie może znaleźć -lz... Nic z tego nie rozumiem. Cała reszta poleceń również nie dotyczy Windowsa. Przykład z mysql/examples też nie na wiele mi się zda, bo nie ma w nim nigdzie zastosowanej funkcji mysql_init, a o to rozwala się mój kilkulinijkowy program (i nerwy). W akcie desperacji wpisałem po prostu w googlach treść komunikatu o błędzie i... było to złe posunięcie, bo moja frustracja jeszcze bardziej się pogłębiła. Najpierw wpadłem ja jakieś forum, gdzie koleś miał ten sam problem. Nikt mu nie pomógł, ale napisałem do niego z pytaniem, czy sobie poradził. Odpisał, że nie. Potem znalazłem jakieś chińskie forum, gdzie rozumiałem tylko angielskie komunikaty kompilatora. Na koniec trafiłem na stronę jakichś "ekspertów" gdzie pod treścią problemu identycznego z moim był wielki link "Sign up to see the solution". Kliknąłem i pojawił się "Error" (bez żadnych wyjaśnień). Wietrzę tu jakiś spisek. :) Czy nikomu do cholery nie udało się rozwiązać czegoś takiego??? Nie wiem, może ja jestem jakiś niekumaty i zbyt ambitny. Może masz FiDO trochę czasu i chciałbyś nowe wyzwanie. Jeśli możesz, to spróbuj sam się z tym zmierzyć. Zainstaluj sobie MySQL i DevCpp, zobacz jak to jest z tym dołączaniem bibliotek, bo mnie nic nie idzie. Ja dla własnego zdrowia psychicznego odkładam ten problem na parę dni. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 16 Lipca 2004 Zgłoś Opublikowano 16 Lipca 2004 Może masz FiDO trochę czasu i chciałbyś nowe wyzwanie. Jeśli możesz, to spróbuj sam się z tym zmierzyć. Zainstaluj sobie MySQL i DevCpp, zobacz jak to jest z tym dołączaniem bibliotek, bo mnie nic nie idzie.Hehe... (sory ;]) czasu mam tak o 24h na dobe za malo zeby zrealizowac plany wakacyjne, ale wyzwania lubie ;] Zobacze co tam w trawie piszczy, MySQL'a mam 4.0.20 i od niego tez biblioteki, DevCpp ni mam, ale samego gcc, z ktorego on korzysta mam, wiec bede kompilowal "z palca". W necie jestem tylko wieczorami, wiec spodziewaj sie odpowiedzi jutro/pojutrze/za N dni ;] w takiej porze N -> oo ;] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 17 Lipca 2004 Zgłoś Opublikowano 17 Lipca 2004 Ok.. problem okazal sie banalny. Rozchodzi sie oczywiscie o MS... biblioteka dostarczona z MySQL'em jest kompilowana pod MSVC i to on generuje lib'a ktorego sie dolacza potem do swoich zewnetrznych klientow, ale oczywiscie format ten jest MS only, wiec na innych kompilatorach trzeba sobie radzic inaczej. Po pierwsze trzeba sobie z dll'ki wygenerowac "swojego" lib'a ktory bedzie kompatybilny z gcc. Najprosciej zrobic to w nastepujacy sposob: 1. Najpierw trzeba wyekstrachowac plik DEF z definicjami exportowanych funkcji (parametrem jest lib w formacie MS, ten dolaczony do MySQL'a): reimp -d libmysql.libreimp'a powinienes miec w DEV-C++ w katalogu bin, w koncu to jest oparte na MinGW, w ktorym to mam taki pliczek w bin. W razie czego poszukaj w necie, najlepiej na www.mingw.org, jest ponoc w pakiecie mingw-utils 2. majac juz DEF'a robimy lib'a za pomoca dlltool'a ktory juz napewno musi byc w DEV-C++ (odpalasz to w katalogu z plikiem libmysql.dll i wygenerowanym powyzej DEF'em) dlltool --input-def libmysql.def --dllname libmySQL.dll --output-lib libmySQL.a -k Ok.. majac gotowego lib'a wrzuc go sobie np do %DEVCPP%/lib, bo ta sciezke kompilator przeszukuje pewnie domyslnie, wiec nie bedziesz musial podawac zadnych sciezek. W opcjach projektu w DEV-C++ gdzies musi byc pole do wpisywania bibliotek do linkowania, musisz tam dopisac 'mysql' (bez prefixu 'lib', on jest domyslny), niestety nie pokieruje Cie gdzie tego szukac, bo nie mam obecnie go na dysku. W kazdym razie "z palca" kompiluje sie to tak: gcc mytest.c -I../../include/ -L. -lmysql -o mytest.exe -I to sciezka do mysql.h, ale to juz pewnie ustawiles sobie w DEV'ie skoro nie rzucalo Ci bledami kompilacji tylko linkowania Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Tirador Opublikowano 18 Lipca 2004 Zgłoś Opublikowano 18 Lipca 2004 problem okazal sie banalny.No faktycznie banał! :D Że też sam na to nie wpadłem! :) Rozchodzi sie oczywiscie o...Jak mawiała pewna polonistka - "rozchodzą się nogi, drogi i małżeństwa". :) No ok, już się nie czepiam. Szło jak z płatka, ale przy generowaniu lib'a za pomocą dlltool, wyskakuje mi komunikat: "dlltool: installation problem, cannot exec `as' "... Cóż to za 'as' znowu? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 18 Lipca 2004 Zgłoś Opublikowano 18 Lipca 2004 problem okazal sie banalny.No faktycznie banał! :D Że też sam na to nie wpadłem! :)Tak sie z tym meczyles, ze spodziewalem sie czegos trudniejszego :) Rozchodzi sie oczywiscie o...Jak mawiała pewna polonistka - "rozchodzą się nogi, drogi i małżeństwa". :)Ludzie tez sie moga rozejsc, np. po skonczonych zajeciach :> No ok, już się nie czepiam.Trzymam za slowo ;] Szło jak z płatka, ale przy generowaniu lib'a za pomocą dlltool, wyskakuje mi komunikat: "dlltool: installation problem, cannot exec `as' "... Cóż to za 'as' znowu?Jak wynika z tresci bledu brakuje Ci as.exe (dziwne bo to assembler, ktory chyba jest wymagany...). DEV-C++ korzysta co prawda z MinGW, ale z wersji troch wykastrowanej, wiec mozesz tego nie miec, ja mam "pelna" wersje, wiec poszlo bez problemu. Powinno to byc w tym archiwum: http://www-inst.eecs.berkeley.edu/~instcd/...nGW-3.1.0-1.exe W razie czego bede mial to wieczorem. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Tirador Opublikowano 20 Lipca 2004 Zgłoś Opublikowano 20 Lipca 2004 FiDO! Jesteś wielki! Nie wiem skąd masz tę wiedzę, ale imponuje mi. Bardzo Ci dziękuję. Dodam jeszcze tylko, że w parametrach kompilacji należy jednak wpisać 'libmySQL.a'; samo mysql nie wystarczy. Nie dołuj mnie, tylko, że był to banalny problem, bo do reszty osiwieję myśląc jaki Twoim zdaniem jest problem klasyfikowany jako 'trudny'. :D Jeszcze raz wielkie dzięki! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 20 Lipca 2004 Zgłoś Opublikowano 20 Lipca 2004 FiDO! Jesteś wielki! Nie wiem skąd masz tę wiedzę, ale imponuje mi. Bardzo Ci dziękuję.Jaki tam znowu wielki.. 182cm tylko :) A wiedze mam z netu, daja za darmo to trzeba brac :> Nie mysl sobie, ze to rozwiazalem tak o w 5 minut z glowy ;] Ale po pierwszej nieudanej probie juz wiedzialem co jest nie tak, odpowiednie haslo w google i 2-3 minuty pozniej mialem juz gotowe rozwiazanie, ktore wlasnie Tobie zaprezentowalem, wiec widzisz jak liczy sie tutaj umiejetnosc obslugi googli. Dodam jeszcze tylko, że w parametrach kompilacji należy jednak wpisać 'libmySQL.a'; samo mysql nie wystarczy.Byc moze, u mnie w kazdym razie starczylo samo mysql i jest to typowe zachowanie gcc, ktory nie wymaga wpisania nazwy calej biblioteki, a prefix 'lib' i rozszerzenie juz sam sobie doda. Nie dołuj mnie, tylko, że był to banalny problem, bo do reszty osiwieję myśląc jaki Twoim zdaniem jest problem klasyfikowany jako 'trudny'. :DSkoro udalo mi sie to zrobic w parenascie/paredziesiat minut, no to problem klasyfikuje jako latwy. A trudne to sa takie, nad ktorymi slecze pare dni z pomoca googli i nadal nie wychodzi, na szczescie takie sie nie zdarzaja :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pofe Opublikowano 24 Października 2005 Zgłoś Opublikowano 24 Października 2005 Witam, mam podobny problem tyle że: 1. Najpierw trzeba wyekstrachowac plik DEF z definicjami exportowanych funkcji (parametrem jest lib w formacie MS, ten dolaczony do MySQL'a): reimp -d libmysql.libreimp'a powinienes miec w DEV-C++ w katalogu bin, w koncu to jest oparte na MinGW, w ktorym to mam taki pliczek w bin. W razie czego poszukaj w necie, najlepiej na www.mingw.org, jest ponoc w pakiecie mingw-utils Nie miałem reimp'a ale go ściągnąłem, tyle że nie mam nigdzie libmysql.lib :( Skąd go moge ściągnąć? Pozdrawiam Przemo Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Artur.M Opublikowano 24 Października 2005 Zgłoś Opublikowano 24 Października 2005 A jak wam powiem łatwiejszy sposób wedłóg mnie. W Dev-cpp wchodzicie chyba w pomoc czy gdzieś tak żeby wyświetliło isę okienko "O programie" tam nadole jest link żeby ściągnąć uaktualnienia. W nowym okienku kilkami na odpowedni przycisk.Mamy listę dodatkó.Wybieramy libmysql i ... ściągamy. Następnie dev bedzie chciał to zainstalować. Po tym wszystkim można zajrzeć do katalogu example i tam chyba jest przykładowy kod z użyciem tej biblioteki. Aby w swoich programach móc jej używać trzeba: 1)Utworzyć nowy porojekt;) 2)zainkludować : #include<Windows.h> #include<mysql/mysql.h> 3) Wejść w Projekt->Opcje projektu Zakładka parametry i w ostaniej dopisujemy : -lmysql 4) Piszemy poprawny kod i kompilujemy:) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...