Jarosław Rybski

Jarosław Rybski Programista
C/C++/Python

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Witam,

Czy da się utworzyć program w c++ korzystający z MySql a jednocześnie kompilujący się pod Windowsem oraz Linuxem.
Jeśli tak to najlepiej jaką bibliotekę wykorzystać. Z tym że nie chodzi mi napewno o styl

int main()
#ifdef __win__
load_library_win();
f1_fetch_win();
f2_close_win();
#elseif __unix__
load_library_ux();
f1_fetch_ux();
f2_close_ux();
#endif
return 0;

a raczej o niewielkie manipulacje w kodzie typu
win : unix
-----------
send write
recv read
itp

Pozdrawiam.Jarosław Rybski edytował(a) ten post dnia 15.01.10 o godzinie 21:06

Temat: połączenie: CPP + MYSQL + Windows + LINUX

da sie.
jesli chcesz recznie manipulowac libami (a nie linkowac sie na stale) to uzyj np. qtsql.
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: połączenie: CPP + MYSQL + Windows + LINUX

da sie tylko czy chcesz pozniej ten soft sprzedawac i czy chcesz udostepnic jego kod?
Jarosław Rybski

Jarosław Rybski Programista
C/C++/Python

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Tzn projekt na własne potrzeby - niekomercyjny. Obecnie kombinuje z instalacją Qt i bedę testował różne implementacje. A Ty Łukasz co proponujesz?
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: połączenie: CPP + MYSQL + Windows + LINUX

jezeli projekt niekomercyjny to mozesz wykorzystac orginalne libmysql natomiast jakbys chcial na tym zarabiac to niestety albo kupisz licencje do mysql albo bedziesz musial korzystac z binarek (uruchamiasz proces z klientem mysql i komunikujesz sie z nim)
co do przenosnosci to jezeli chcesz gui to masz qt, wxwidgets, gtk (gtkmm) itp itd wiec problemu specjalnego nei ma, chociaz jak bedziesz chcial zrobic cos niestandardowego to pewnie bedziesz mial kilka #ifdef WINDOWS #ifdef UNIX w kodzie ;)
Jarosław Rybski

Jarosław Rybski Programista
C/C++/Python

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Faktycznie z libmysql idzie najłatwiej i prog się kompiluje na Windows jak i na Linuxie. A swoją drogą kompilując pod Windows jestem w stanie stwierdzić czy program będzie się kompilował również na Linuxie czy jedyna metoda to restart kompa, odpalenie Linuxa i ponowna rekompilacja. Dodam że zarówno w Win jak i Linux korzystam z G++ 4.4.1
Pozdrawiam.

konto usunięte

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Możesz uruchomić wirtualny komputer z Linuxem - patrz np. VirtualBox.
Dzięki temu możesz pracować równolegle nad wersją Windows i Linux.
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Jarosław Rybski:
Faktycznie z libmysql idzie najłatwiej i prog się kompiluje na Windows jak i na Linuxie. A swoją drogą kompilując pod Windows jestem w stanie stwierdzić czy program będzie się kompilował również na Linuxie czy jedyna metoda to restart kompa, odpalenie Linuxa i ponowna rekompilacja. Dodam że zarówno w Win jak i Linux korzystam z G++ 4.4.1
Pozdrawiam.
ciagla integracja, w pulse da sie skonfigurowac budowanie tak aby kompilowal jeden program na kilku maszynach i na roznych systemach dzieki temu masz pewnosc ze dziala i przechodzi testy. z darmowych jest hudson i cruisecontrol, tego pierwszego nie znam drugi podobno ma mozliwosc budowania na wielu maszynach naraz. Jezeli skonfigurujesz to w oparciu o virtualboxa czy vmware wtedy mozesz ograniczyc sie do jednej fizycznej maszyny

konto usunięte

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Jezeli kladziesz nacisk na jakosc kodu zrodlowego to zainteresowalbym sie biblioteka SOCI.

http://soci.sourceforge.net/

Przyznam szczerze, ze nie korzystalem z SOCI i byc moze nie mam jasnego obrazu sytuacji. Jednak po wstepnej(szybkiej) analizie doszedlem do wniosku, ze biblioteka wyglada ciekawie.

Przede wszystkim podoba mi sie jej C++'owy styl - latwosc integracji z biblioteka standardowa jezyka itp.

Kolejna ciekawa cecha jest fakt, iz bibliteka umozliwia dostep do kilku silnikow bazodanowych - w tym wspomniany przez Ciebie MySQL. Jest to dosc przyszlosciowe rozwiazanie bo ewentualna zmiana bazy nie pociagnie za soba wielkich zmian w kodzie programu.

Niestety z tego co zauwazylem tworcy biblioteki bardziej skupili sie na bazie Oracle niz na MySQL. Takie odnioslem wrazenie patrzac na tabelke porownawcza:

http://soci.sourceforge.net/doc/backends/index.html

Mam jednak nadzieje, ze nie potrzebujesz takich ficzerow jak dane typu BLOB :) A jesli potrzebujesz to trudno - najwyzej nie skorzystasz :) Jezeli jednak skorzystasz to byloby fajnie gdybys dal znac czy napotkales na jakies problemy z jej uzywaniem - przyda sie wiedza na przyszlosc :)
Jarosław Rybski

Jarosław Rybski Programista
C/C++/Python

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Wybrałem już libmysql.
Windows plus Ubuntu na VirtualBoxie to chyba najlepsze rozwiązanie z wykorzystaniem FTPa jakie dało się na szybko wykombinować.

Pozdrawiam.
Damian Sepczuk

Damian Sepczuk Katolicki
Uniwersytet
Lubelski/Adocean
(Lublin/Warszawa)

Temat: połączenie: CPP + MYSQL + Windows + LINUX

Pod VMware host: Windows 2008 R2 (x64), guest: Kubuntu 9.04 (x64) (ew. 9.10) integrują się idealnie -- działa nawet przeciąganie plików i współdzielenie schowka.

/ups. odgrzewam wątek...

Następna dyskusja:

Low-level pod Windows




Wyślij zaproszenie do