Mysql connector Visual C++ Studio - Błąd przy kompilacji

0

Witam,
próbuję połączyć się z bazą danych w VC i mam pewien problem zainstalowałem connectora według tej strony
http://dev.mysql.com/doc/refman/5.5/en/connector-cpp-apps-windows-visual-studio.html#connector-cpp-application-build-dynamic

wyskoczył mi komunikat że nie ma bootsa jakiegoś to też to zainstalowałem następnie zgłosiło błąd że nie ma sqlstring.h dowiedizałem się ze instalator connectora nie zawiera tego i trzeba samemu dodać. dodałem i wyskakuje komunikat który mnei już troszeczkę rozwalił

tutaj kod którym chcę żeby się skompilowało

#include "stdafx.h"
#include <iostream>
#include <boost\variant.hpp>
#include "mysql_connection.h"

#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>



using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

	return 0;
}

a tutaj błąd

 
1>------ Rebuild All started: Project: bazydanych, Configuration: Release Win32 ------
1>  stdafx.cpp
1>  bazydanych.cpp
1>c:\mysql\include\cppconn\sqlstring.h(36): warning C4251: 'sql::SQLString::realStr' : class 'std::basic_string<_Elem,_Traits,_Ax>' needs to have dll-interface to be used by clients of class 'sql::SQLString'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>,
1>              _Ax=std::allocator<char>
1>          ]
1>C:\mysql\include\mysql_connection.h(156): warning C4251: 'sql::mysql::MySQL_Connection::proxy' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'sql::mysql::MySQL_Connection'
1>          with
1>          [
1>              T=sql::mysql::NativeAPI::NativeConnectionWrapper
1>          ]
1>C:\mysql\include\cppconn/exception.h(59): warning C4251: 'sql::SQLException::sql_state' : class 'std::basic_string<_Elem,_Traits,_Ax>' needs to have dll-interface to be used by clients of class 'sql::SQLException'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>,
1>              _Ax=std::allocator<char>
1>          ]
1>c:\mysql\include\cppconn\config.h(60): error C2371: 'int8_t' : redefinition; different basic types
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(17) : see declaration of 'int8_t'
1>c:\mysql\include\cppconn\config.h(60): error C2371: 'int8_t' : redefinition; different basic types
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(17) : see declaration of 'int8_t'
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

0

mam ten sam problem

0

pomoże ktoś?

0

Zdefiniuj makro CPPCONN_DONT_TYPEDEF_MS_TYPES_TO_C99_TYPES, no i może HAVE_STDINT_H.

p.s. strzelam po przejrzeniu pliku config.h.cm, więc może nie działać.

0

możesz napisać dokładniej jak to zrobić?

0

Project -> Properties -> C++ -> Preprocessor.

0

kolejny błąd
1>LINK : fatal error LNK1104: cannot open file 'libmysql.lib'

Ustawiałem wszystko według tej strony:
http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-apps-windows-visual-studio.html

problemem jest że w MySQL Connector C++ 1.1.0\lib\opt nie ma pliku libmysql.lib a według instrukcji powinien być, widocznie w nowszej wersji pozmieniali co nieco a instrukcje nie zaktualizowali. Pomoże ktoś?

0

Zapewne ściągnąłeś wersję biblioteki do skompilowania, a opis dotyczy wersji skompilowanej. Poszukaj na stronie mysql wersji skompilowanej (wiem, że kiedyś była, chyba nawet mam gdzieś jakąś starą(?) wersję).

0

Raczej jest to wersja skompilowana w pliku MySQL Connector C++ 1.1.0\lib\opt\ mam:
MSVCP90.dll
MSVCR90.dll
mysqlcppconn.dll
mysqlcppconn
mysqlcppconn-static
Jakieś pomysły? jeszcze trochę to mnie szlag trafi z tym mysql...

0

A te dwie ostatnie pozycje to co to jest? Może to są pliki LIB, tylko (nie wiedzieć czemu) nie mają rozszerzenia. Zobacz w jakimś podglądzie, czy nie zaczynają się od sekwencji !<arch>. Jeśli tak, to być może są to szukane biblioteki LIB.

0

dokładnie są to pliki lib i raczej są już dodane, tylko że według vs 2010 potrzebuje libmysql.lib

0

Dodaj tylko mysqlcppconn, bo przy statycznym linkowaniu (mysqlcppconn-static) może wymagać libmysql.lib.

0

LINK : fatal error LNK1104: cannot open file 'mysqlcppconn-static.lib'

0

Przecież pisałem, żebyś nie łączył mysqlcppconn-static.lib! Dodaj tylko mysqlcppconn, jeśli faktycznie jest to plik LIB. Plik mysqlcppconn-static.lib wymaga dołączenia libmysql.lib, a Ty go nie masz, więc sprawa jasna.

p.s. nie wiem, skąd wziąłeś tę swoją bibliotekę, ja mam mysql-connector-c++-noinstall-1.1.0-win32.zip, i tu w katalogu lib są tylko trzy pliki: mysqlcppconn.dll, 'mysqlcppconn.lib i mysqlcppconn-static.lib. Więc może ściągnij tę wersję biblioteki.

0

Jak nie łączył? mysqlcppconn-static.lib wywaliłem po prostu z folderu lib, a w vs 2010 podałem ścieżkę do folderu i wywaliło mi błąd taki jak już napisałem
Pobrałem również inne wersje i efekt jest ten sam. Z góry przepraszam za moją nie wiedzę, można powiedzieć że raczkuję z VS 2010 i dodatkami, wcześniej używałem VS 6 to dość "typowych" projektów

0

mysqlcppconn-static.lib wywaliłem po prostu z folderu lib, a w vs 2010 podałem ścieżkę do folderu i wywaliło mi błąd taki jak już napisałem

Wywalać z folderu nie musisz, wystarczy jak usuniesz wpis z Linker -> Input -> Additional Dependencies. Tam ma być tylko mysqlcppconn.lib. Zresztą na stronie, ktorą wcześniej podałeś, to wszystko jest opisane, przewiń na sam dół.

0

Jeśli masz dalej problem z [code]redefinition of int8_t[/code] to musisz otworzyć plik config.h i tam poszukać wszystkie #typedef przy których jest napisane właśnie int8 i ująć je w komentarz (wpisując przed nimi te dwa znaki - //), mnie to pomogło :)

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