2

编辑:

我的问题是这篇文章底部的错误。

这是我的附加包含目录

C:\Program Files\boost
C:\Program Files\MySQL\MySQL Connector C++ 1.1.3\include
C:\Program Files\MySQL\MySQL Server 5.6\include

其他图书馆目录

C:\Program Files\MySQL\MySQL Server 5.6\lib
C:\Program Files\MySQL\Connector C++ 1.1.2\lib\opt

附加依赖项

libmysql.lib
mysqlcppconn-static.lib

这是我的代码

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

#include <stdlib.h>
#include <Windows.h>
#include <mysql.h>
#include "mysql_connection.h"

#include <cppconn/driver.h>
#define host "localhost"
#define username "root"
#define password "root"
#define database "tests"

int main()
{
    MYSQL* conn;
    conn = mysql_init( NULL );
    if( conn )
    {
        mysql_real_connect( conn, host, username, password, database, 0, NULL, 0 );
    }
    MYSQL_RES* res_set;
    MYSQL_ROW row;
    unsigned int i;
    mysql_query( conn, "SELECT * FROM tbl_clients WHERE id = 1" ); 
    res_set = mysql_store_result( conn );
    unsigned int numrows = mysql_num_rows( res_set ); 
    if( numrows )
    {
        row = mysql_fetch_row( res_set );
        if( row != NULL )
        {
            cout << "Client ID  : " << row[0] << endl;
            cout << "Client Name: " << row[1] << endl;
        }
    }
    if( res_set )
    {
        mysql_free_result( res_set );
    }
    if( conn )
    {
        mysql_close( conn );
    }

    return 0;
}

这些是我得到的错误

1>------ Build started: Project: okay, Configuration: Debug Win32 ------
1>welp.obj : error LNK2019: unresolved external symbol _mysql_num_rows@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_init@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_real_connect@32 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_query@8 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_store_result@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_free_result@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_fetch_row@4 referenced in function _main
1>welp.obj : error LNK2019: unresolved external symbol _mysql_close@4 referenced in function _main
1>C:\Users\Damian\documents\visual studio 2012\Projects\okay\Debug\okay.exe : fatal error LNK1120: 8 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

请帮忙,这个项目在我的课上大约需要 48 小时,我花了很多时间来解决这个问题。

谢谢

4

2 回答 2

2

respectfully, your last two questions are compiler/linker questions. I understand your frustration, as I knew how to code early but knew nothing about compilers/linkers. When you get a moment take some time to read about:

  • headers
  • binary vs object file
  • libraries / shared object
  • compiler
  • linker
  • function mangling (C vs C++)

To answer your question, I am guessing you're doing this in Microsoft Visual Studio:

  1. You need to go to Project Properties and set Additional Library Paths (i see you did that from your last post)
  2. You need to specify the library, I'm going out on a limb here and assuming it will mysql.lib ... There's an "Additional Library" input somewhere in the Linker section, you'll be able to identify it because kernel32.lib will be int it. Add the mysql.lib to that section. Confirm the name by going to the mysql folder which holds the binaries.
  3. Make sure you're using the static library, the .dll will give you new issues that you don't need to worry about. This is usually achieved by setting the correct library directory. Many c++ libraries will ship with precompiled "Static" and "Dynamic" folders containing the correct libraries.
于 2013-05-09T15:13:21.200 回答
1

这是由于链接器问题而发生的错误。链接器无法找到所需的静态或动态库(mysql.lib 、mysqlcppconn-static.lib、libmysql.dll 和 libmysql.lib)。附加库设置错误。检查此站点是否提供正确的路径使用 Microsoft Visual Studio 构建 MySQL 连接器/C++ Windows 应用程序

于 2013-05-09T13:06:33.087 回答