Static linking of MySQL in C/C++

2019-01-20 15:18发布

问题:

I am trying to develop an application that uses MySQL using C++. I downloaded the library from their website and I have attempted to compile the following code:

#include <iostream>
#include <windows.h>
#include <mysql.h>
using namespace std;
int main()
{
    MYSQL *connection, mysql;
    MYSQL_RES *result;
    MYSQL_ROW row;
    mysql_init(&mysql);
}

The line that has mysql_init(&mysql); gives me a compilation error

undefined reference to `mysql_init@4'

I am guessing this is due to a library error. I am linking mysqlclient.lib and libmysql.lib in that order. What do I need to do to make this compile without requiring a dll file? Is that possible? Thank you. Note: I am using mingw32 on Windows 7 x64 to develop an application for Windows.

回答1:

Maybe this link will help. It states that mysqlclient.lib is the static library and libmysql.lib is the dynamic library, so I don't think you should be linking both.

http://dev.mysql.com/doc/refman/5.0/en/building-clients.html