Dmitry
Dmitry

Reputation: 11

Mysql connection with Visual C++

I have spent already 4 days trying to understand how to connect from VS 2012. My program is written on C++, it connects to Mysql and insert in it records from text file. Problem: 1) I cant compile, it gives me linking mistakes:

1>DataTransformXYZtoDatabase.obj : error LNK2001: unresolved external symbol _mysql_close@4 1>DataTransformXYZtoDatabase.obj : error LNK2001: unresolved external symbol _mysql_query@8 1>DataTransformXYZtoDatabase.obj : error LNK2001: unresolved external symbol _mysql_real_connect@32 1>DataTransformXYZtoDatabase.obj : error LNK2001: unresolved external symbol _mysql_init@4

So what I have done. I used staical library. My actions:

  1. I created win32 console application in release mode

  2. In Additional Include Directories added MySQL include/ catalog. ( C:\MySQL\MySQL Server 5.6\include)

  3. Link/General/Additional library directories / I wrote C:\Program Files\MySQL\MySQL Server 5.6\lib\opt

  4. Than Link/ input I wrote mysqlcppconn-static.lib и libmysql.lib.

  5. C++/Preprocessor I wrote CPPCONN_PUBLIC_FUNC=

  6. Also I added mysqlcppconn-static.lib и libmysql.lib to my exe file directory.

I included the following headers :

#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string> 
#include <boost\lexical_cast.hpp>
#include <mysql.h>
#include <windows.h>
//#include "my_global.h"
// MySQL connection
//#include <winSock2.h>
#include <winSock.h>
#include <mysql.h>
#pragma comment(lib, "libmysql.lib")

Please help me if you can. Thank you .

Upvotes: 1

Views: 1106

Answers (1)

user3079953
user3079953

Reputation: 21

I have also spent 2 days and here is the solution. Instead of console application I've used visual c++ app (the only difference is the defining the include and lib directories)

  1. create application
  2. add include directory (properties ->VC++ directories -> include directories)
  3. add lib directory (properties ->VC++ directories -> library directories)
  4. then properties->linker->input->additional dependencies -> libmysql.lib
  5. copy a libmysql.dll (32bit) to the directory of the executable of your application


thats it! do not add any preprocessor commands or static libraries.

Upvotes: 1

Related Questions