c++ MySQL Connector.C++ 1.1 undefined reference to get_driver_instance()

Odpowiedz Nowy wątek
2015-03-04 12:55

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

Lokalizacja: Wwa

0

Witam,

chciałbym prosić o pomoc w rozwiązaniu sprawy. Szukam rozwiązania od 2 dni bez powodzenia.
Próbuję połączyć się z bazą mysql ale otrzymuję undefined reference to get_driver_instance
Dodałem wszystko zgodnie z http://dev.mysql.com/doc/connector-cpp/en/index.html dla VS tyle że ja na C::B mianowicie

dodanie ścieżek do lib
...\MySQL\Connector.C++ 1.1\lib\opt
...\MySQL\MySQL Server 5.6\lib

do include
...\MySQL\MySQL Server 5.6\include
...\MySQL\Connector.C++ 1.1\include
...\lib\boost_1_57_0

oraz zlinkowane biblioteki (próbowałem również dla .a zgodnie z jedną poradą ale efekt bez zmian)
MySQL\MySQL Server 5.6\lib\libmysql.lib
MySQL\MySQL Server 5.6\lib\mysqlclient.lib
MySQL\Connector.C++ 1.1\lib\opt\mysqlcppconn-static.lib

do #defines dodane
CPPCONN_PUBLIC_FUNC=
bez tego różnica jest tylko taka
obj\Release\main.o:main.cpp:(.text.startup+0x48)||undefined reference to `_imp___ZN3sql5mysql19get_driver_instanceEv'|

#include <iostream>
#include <windows.h>
#include "mysql_driver.h"
#include "mysql_connection.h"

using namespace std;
using namespace sql::mysql;
using namespace sql;
int main()
{
    MySQL_Driver *driver;
    Connection *con;

    //driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance(); ten przykład zawiera błąd jak wspomniane w komentarzu
    driver = get_mysql_driver_instance();
    con = driver->connect("tcp://127.0.0.1:3000", "testuser", "testpass");

    delete con;
    return 0;
} 

Czy pomijam coś istotnego lub gdzieś robię błąd? Z góry dziękuję za pomoc.
Michał

Pozostało 580 znaków

2015-03-04 13:02

Rejestracja: 6 lat temu

Ostatnio: 3 dni temu

0

Flagi kompilatora?

Pozostało 580 znaków

2015-03-04 13:08

Rejestracja: 5 lat temu

Ostatnio: 8 godzin temu

Lokalizacja: Szczecin

0

spróbuj wywalić te using namespace i odwoływać się do obiektów/funkcji statycznych bezpośrednio przez namespace

Pozostało 580 znaków

2015-03-04 13:33

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

Lokalizacja: Wwa

0

Flagi kompilatora?
chyba nic związanego z SQLem -Wall -fexceptions

spróbuj wywalić te using namespace i odwoływać się do obiektów/funkcji statycznych bezpośrednio przez namespace
już próbowałem ale dzięki ;]

Pozostało 580 znaków

2015-03-04 15:25

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

Lokalizacja: Wwa

0

A w VC++ 2010:

1>------ Build started: Project: SQL2, Configuration: Release Win32 ------
1>  SQL2.cpp
1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(invarg.obj) : error LNK2005: __set_invalid_parameter_handler already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(tolower.obj) : error LNK2005: _tolower already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(setlocal.obj) : error LNK2005: __configthreadlocale already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(_file.obj) : error LNK2005: ___iob_func already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(dosmap.obj) : error LNK2005: __errno already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" ([email protected]@YAXXZ) already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(winsig.obj) : error LNK2005: _signal already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in MSVCRT.lib(cinitexe.obj)
1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRT.lib(cinitexe.obj)
1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRT.lib(cinitexe.obj)
1>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)
1>LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(mlock.obj) : error LNK2005: __lock already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(fflush.obj) : error LNK2005: _fflush already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(abort.obj) : error LNK2005: __set_abort_behavior already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(errmode.obj) : error LNK2005: ___set_app_type already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(atox.obj) : error LNK2005: _atoi already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(strnicmp.obj) : error LNK2005: __strnicmp already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(strtol.obj) : error LNK2005: _strtol already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(strtol.obj) : error LNK2005: _strtoul already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(strtoq.obj) : error LNK2005: __strtoi64 already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(strtoq.obj) : error LNK2005: __strtoui64 already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(osfinfo.obj) : error LNK2005: __get_osfhandle already defined in MSVCRT.lib(MSVCR100.dll)
1>LIBCMT.lib(osfinfo.obj) : error LNK2005: __open_osfhandle already defined in MSVCRT.lib(MSVCR100.dll)
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
1>C:\UserData\CPP\Workspace\SQL2\Release\SQL2.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
tuaj przyczyn może być wiele, ciężko cokolwiek zdiagnozować, możliwe, że masz takie same includes, może gdzies Ci brakuje strażnika nagłówka itd itd - gośćabc 2015-03-04 15:37

Pozostało 580 znaków

2015-03-05 08:11

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

Lokalizacja: Wwa

0

Witam

Kolejny dzien bezowocnych staran za mna i zaczyna mi to spedzac sen z powiek. Moze posiada ktos dzialajaca konfiguracje na windowsie i chcialby podzielic sie informacja o kompilatorze, wersji bazy i connectora. Z gory dziekuje.

Pozostało 580 znaków

2015-03-06 01:47

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

Lokalizacja: Wwa

0

Wygląda na to że biblioteki MySQL Connector/C++ będą działać tylko z VC i to konkretną wersją pod którą były skompilowane. Nie udało mi się zbudować connectora ze źródeł w MinGW C::B zgodnie z http://dev.mysql.com/doc/connector-cpp/en/index.html Make cały czas sypał błędami.

Za to http://dev.mysql.com/doc/refman/5.6/en/c-api.html działa bez problemów ale tylko linkowane dynamicznie z libmysql.dll + libmysql.lib. Statyczne linkowanie mysqlclient.lib również sypie błędami...

Temat zamknięty.

Pozostało 580 znaków

Odpowiedz

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