Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

ld returned 1 exit status - mysql.h


Rekomendowane odpowiedzi

Opublikowano

Cześć mam problem z biblioteką mysql.h. Otóż mam taki kod:

 

// szablon
#include <iostream>
#include <cstring>
#include <cmath>
#include <mysql.h>
using namespace std;

main()
{

    system("chcp 1250");


    MYSQL mysql;
 
    mysql_init(&mysql); // incjalizacja
    
    if(mysql_real_connect(&mysql, "x", "x", "x", "x", 0, NULL, 0))
        printf("Połączenie z bazą danych MySQL nawiązano poprawnie!\n");
    else
        printf("Błąd połączenia z bazą MySQL: %d, %s\n", mysql_errno(&mysql), mysql_error(&mysql));
    
    mysql_close(&mysql); // zamknij połączenie
    
    return 0;


    system("pause");
    return 0;
}

i po kompilowaniu pojawia się plik makefile.win zamiast mojego projektu z błędem ld returned 1 exit status w linijce $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS) :v

 

caly plik makefile.win:

 

# Project: chat
# Makefile created by Dev-C++ 5.11

CPP      = g++.exe
CC       = gcc.exe
WINDRES  = windres.exe
OBJ      = main.o
LINKOBJ  = main.o
LIBS     = -L"xxx" -static-libgcc
INCS     = -I"x" -I"x"
CXXINCS  = -I"x" -I"x" -I"x"
BIN      = chat.exe
CXXFLAGS = $(CXXINCS)
CFLAGS   = $(INCS)
RM       = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
    ${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)

main.o: main.cpp
    $(CPP) -c main.cpp -o main.o $(CXXFLAGS)

x*-w kodzie zmienilem na x dane,ścieżki, tak po prostu.

Opublikowano

tzn? w opcjach projektu [mam devc++] dodalem tam w opcjach parameters w Linker

edit: jednak znalazlem- ręcznie dodalem plik lib ;) thx za powyższe wypowiedzi

edit2: jednak po uruchomieniu kodu pisze, że nie można znaleźć libmysql.dll i ponowna instalacja programu moze naprawic ten blad :v jak zaladowac ten plik gdyz obok tego pliku .lib się znajduje?

Opublikowano

mozesz dodac sciezke do mysql.dll do zmiennej srodowiskowej przechowujacej lokacje znanych dllow. W niektorych przypadkach wystarczy samo skopiowanie dllki (jesli nie ma jeszcze innych zaleznosci) do folderu z exekiem

Opublikowano

Wszystko działa tzn nie ma errorów ale:

#include <iostream>
#include <cstring>
#include <cmath>
#include <mysql.h>
using namespace std;

main()
{

    system("chcp 1250");

    MYSQL mysql;
    mysql_init(&mysql); // incjalizacja
    if(mysql_real_connect(&mysql, "x.x.pl", "x", "x", "x", 0, NULL, 0))
        printf("Połączenie z bazą danych MySQL nawiązano poprawnie!\n");
    else
        printf("Błąd połączenia z bazą MySQL: %d, %s\n", mysql_errno(&mysql), mysql_error(&mysql));
    mysql_close(&mysql); // zamknij połączenie



    system("pause");
    return 0;
}

ten kod sprawia, że crashuje [projekt].exe po uruchomienu - program przestal działać

edit: mysql_init(&mysql); to sprawia ze nie dziala program ale czemu? próbowałem innych kodów to i tam w [zmienna]_init(...) pokazuje error i tylko tu :v czemu?

Opublikowano

Jeżeli ktoś z was używał Mysql.H w projektach to niech podaj link do plików jakie importuje itp do projektu oraz ten kawałek kodu aby się połączyć z bazą :/

Opublikowano

Wszystko działa tzn nie ma errorów ale:

#include <iostream>
#include <cstring>
#include <cmath>
#include <mysql.h>
using namespace std;

main()
{

    system("chcp 1250");

    MYSQL mysql;
    mysql_init(&mysql); // incjalizacja
    if(mysql_real_connect(&mysql, "x.x.pl", "x", "x", "x", 0, NULL, 0))
        printf("Połączenie z bazą danych MySQL nawiązano poprawnie!\n");
    else
        printf("Błąd połączenia z bazą MySQL: %d, %s\n", mysql_errno(&mysql), mysql_error(&mysql));
    mysql_close(&mysql); // zamknij połączenie



    system("pause");
    return 0;
}

ten kod sprawia, że crashuje [projekt].exe po uruchomienu - program przestal działać

edit: mysql_init(&mysql); to sprawia ze nie dziala program ale czemu? próbowałem innych kodów to i tam w [zmienna]_init(...) pokazuje error i tylko tu :v czemu?

Spróbuj pozwolić libce zaalokować obiekt MYSQL:

 

 

...
    MYSQL* mysql = mysql_init(NULL);
...

 

Kompilator użyty do zbudowania DLL z mysql może mieć inny padding w struct i prawdopodobnie stąd crash. Ewentualnie pobierz src libki od mysql i zbuduj tym samym.

YOU MUST DIE

- Ganon, Koridai

Opublikowano

tak, laduje je w opcjach projektu w lib directory [gdzie nawiguje do folderu lib w folderze mysql-connector... ] i include directores [nawiguje do include folderu]... W linker do tego nawiguje do mysqlclient.lib w folderze mysql-connectior(..)/lib/vs11/

dobra ch*j pobralem nowsze mysql connect i teraz nie includuje sie mysql.h tylko cos innego i niby brnie to dalej bo pisze, że nie mam libki do

#include <boost/shared_ptr.hpp>
#include <boost/scoped_ptr.hpp>

 

dolaczylem boost jako include i niby pierwsze pliki z tym powyzszym kodem dzialaja ale w nich jest napisane np:

#include <boost/smart_ptr/shared_ptr.hpp>

a to juz zwraca mi error. tak samo z scoped_ptr... jak to naprawic? :v

Opublikowano

Może inaczej, wyślij konfigurację projektu (ścieżki include, libki) + pełne ścieżki jakie masz do wszelkich libek/include'ów używanych i dojdziemy co jest nie tak.

Próbowałem na szybko libki mysqlclient i wszystko śmigło.

YOU MUST DIE

- Ganon, Koridai

Opublikowano

Ogólnie po weekendzie bd miał dostęp do jakiejś biblii c++ - nauczyciel zaproponował, ze tam znajdę sposób jakiś łączenia się poprzez Mysql w c++ więc odezwę się po weekendzie czy coś się zmieniło :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...