MYSQL/C++ Błąd podczas łączenia z bazą danych.

0

Witam,

Staram się napisać program z zastosowaniem bazy danych MYSQL. Niestety natrafiłem problem już na próbie połączenia się z bazą danych. Zamieszczam kod programu:

#include <iostream>
#include <conio.h>
#include <string>
#include <fstream>
#include <windows.h>
#include <mysql.h>

using namespace std;

int main()
   {
   MYSQL* conn;
   
   conn = mysql_init(NULL);
   mysql_real_connect(conn,HOST,USERNAME,PASSWORD,DATABASE,0,NULL,0);   
   return 0;       
   }
} 

Pracuję w Dev-c++ i wyświetla mi on następujący bład:

**

[Linker error] undefined reference to `mysql_init@4' 
[Linker error] undefined reference to `mysql_real_connect@32' 

**

Szukałem w internecie rozwiązania tego problemu i zastosowałem się do paru rad:

  1. Skopiowałem plik libmysql.dll do folderu z kodem źródłowym oraz folderu system32
  2. W Project -> Project Options -> Parameters -> Linker dodałem "C:/Program Files/MySQL/MySQL Server 5.6/lib/libmysql.lib"

Niestety błąd nie został naprawiony. Następnie zastosowałem się do następującej rady:
Tools -> Compile Options -> Add these commands to linker command line: dodałem -lmysql spowodowało to zmianę wyskakującego błedu na File Format not recognised. Teraz całkowicie nie wiem co mam robić.

Z góry dzięki za jakąkolwiek pomoc.

0

Dev-C++ 6.10.2

0

Dobra mój błąd. Swojego deva posiadam z płyty dołączonej do "C++ wykorzystaj potęgę aplikacji graficznych" i w sumie pełna nazwa jest to wxDevcpp_6.10.2, a co do wersji samego deva to jest to devcpp-4.9.9.2. Przepraszam za wprowadzenie w błąd. A wracając do tematu jest ktoś mi w stanie pomóc?

0

Pobierz nowsze Dev-C++ (Orwell Dev-C++)/Code::Blocks/cokolwiek - istnieje 95% szans, że problem "sam" się rozwiąże.
Jeżeli po zaktualizowaniu wciąż będzie to samo, podaj nazwę i wersję środowiska, a pomyślimy dalej.

0

Skoro już wyjaśnione z wersją kompilatora to czas podać kod który kompilujesz.
Na 100% nie jest to ten co podałeś.
Ten kod powinien wywoływać protest kompilatora nie linkera.

0

Dobra. Ogólnie piszę program w wxWidgets w Dev-cpp. i w pliku nowy.cpp w funkcji, która jest uruchamiana po naciśnięciu przycisku mam następujący kod:

   void nowy::but_click(wxCommandEvent& event)
   {
       MYSQL *baza;
       baza = mysql_init(NULL);
       mysql_real_connect (baza, "localhost", "root", "wakacje12", "MsSQL", 0, NULL, 0);
   } 

Natomiast w nowy.h mam dołączone pliki nagłówkowe:

#include <mysql.h>
#include <windows.h> 

Oraz inne, które są potrzebne do elementów graficznych. Są to jedyne linijki kodu, które mają coś wspólnego z baza danych. Oprócz tego wykonałem czynności takie jak opisałem w pierwszym poście.
Na razie nie bawiłem się w żadne informacje, czy połączył się z bazą danych, ponieważ jak już pisałem nawet mi się nie chce skompilować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1