心怀梦想的咸鱼 2024-05-29 18:39 采纳率: 0%
浏览 19

在win10平台下MySQL Connector/C++的使用错误

使用第三方库MySQL Connector/C++是啊比
系统是win10,编译器是visual studio2022
测试代码如下

#include <jdbc/cppconn/statement.h>
#include <jdbc/cppconn/resultset.h>
#include <jdbc/cppconn/exception.h>
#include "jdbc/mysql_driver.h"
#include<windows.h>

int main() {
    std::string sql1 = "create database testmysql";//sql1用于创建testmysql数据库
    SetConsoleOutputCP(CP_UTF8);
    try
    {
        // 注册MySQL驱动程序
        sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();
        sql::Connection* con;
        sql::Statement* stmt;
        sql::ResultSet* res;
        //获取数据库连接对象
        con = driver->connect("tcp://localhost:3306", "root", "123456");
        //获取执行语句对象
        stmt = con->createStatement();
        stmt->execute(sql1);
        delete stmt;
        delete con;
    }
    catch (sql::SQLException& sqle)
    {
        std::cout << "数据库连接出错" << std::endl;
    }
    return 0;
}

设置属性

img


vc目录下的库目录为:C:\mysql-connector-c++-8.4.0-winx64-debug\mysql-connector-c++-8.4.0-winx64\lib64\vs14;C:\mysql-connector-c++-8.4.0-winx64-debug\mysql-connector-c++-8.4.0-winx64\lib64\vs14\debug;$(LibraryPath)
C/C++的库目录为C:\mysql-connector-c++-8.4.0-winx64-debug\mysql-connector-c++-8.4.0-winx64\include
链接器附加依赖项为
mysqlcppconn.lib
mysqlcppconn8.lib
但是运行后报错

img

不知道,哪里错了,有什么遗漏。

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-29 18:39
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,看起来您的问题是关于如何正确地在Windows 10上使用Visual Studio 2022与MySQL Connector/C++进行开发。从错误信息来看,程序崩溃可能是由于缺少必要的运行时库或者链接错误导致的。

    首先,确保您已经按照官方文档安装了MySQL Connector/C++的开发包,并且包含了正确的库和头文件路径。根据您提供的截图,似乎已经设置了包含目录和库目录,但为了保险起见,请检查以下几点:

    1. 确保安装了正确的版本(对于x64平台,选择64位版本)并添加到系统PATH环境变量中,以便链接器能找到相关动态链接库。

    2. 检查是否已将库目录添加到了项目的链接器选项中。您提到的链接器附加依赖项包括mysqlcppconn.libmysqlcppconn8.lib,确保这两个库文件确实存在于指定的路径下。

    3. 如果您是在调试模式下运行程序,记得添加调试版本的库,例如mysqlcppconn8d.liblibmysql.dll(通常位于C:\mysql-connector-c++-8.4.0-winx64-debug\mysql-connector-c++-8.4.0-winx64\lib64\vs14\debug目录下)。

    4. 您可能还需要添加一些额外的链接器选项,比如-lws2_32,这有助于解决与Winsock相关的链接问题。

    下面是针对这些问题的一些建议:

    **第一步:**确认库文件位置

    确保在以下两个地方添加正确的库路径:

    1. 在项目属性的“链接器” -> “一般” -> “附加库目录”中添加:

      C:\mysql-connector-c++-8.4.0-winx64-debug\mysql-connector-c++-8.4.0-winx64\lib64\vs14
      C:\mysql-connector-c++-8.4.0-winx64-debug\mysql-connector-c++-8.4.0-winx64\lib64\vs14\debug
      
    2. 在项目属性的“链接器” -> “输入” -> “附加依赖项”中添加:

      mysqlcppconn.lib
      mysqlcppconn8.lib
      ws2_32.lib
      

    **第二步:**检查编译选项

    确保在C/C++的“预处理器”部分添加了必要的宏定义,比如:

    MYSQLCPPCONN_USE_DLL
    

    **第三步:**运行时库

    确保在C/C++的“代码生成” -> “运行时库”中选择了正确的运行时库,对于调试模式应该是“多线程调试DLL”。

    **第四步:**重新构建项目

    保存以上更改后,清理解决方案然后重建项目,看看问题是否仍然存在。

    如果您遵循了上述步骤,应该可以成功编译并运行您的代码。如果问题依然存在,请提供详细的错误消息,以便进一步排查。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月29日

悬赏问题

  • ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
  • ¥15 计算决策面并仿真附上结果
  • ¥20 halcon 图像拼接
  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥100 求ASMedia ASM1184e & ASM1187e 芯片datasheet/规格书
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么