在 Windows、VS2K17 上调试构建 mysql-connector C++ 应用程序

问题描述 投票:0回答:1

我正在尝试在调试模式下运行一个简单的

mysql-connector
(c ++)应用程序,但当它到达以下行时似乎失败了(请参阅下面的完整源代码):

pstmt = con->prepareStatement(query);

并在 Visual Studio 中使用本地 Windows 调试器,它会停止[在上面的那行]并出现以下异常未处理:

Unhandled exception at 0x00007FFD7921A388 in Database.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0000004F7E8FC920.

如果我将活动构建配置设置为

Release
(VS 2017,Win10/64 位),该应用程序可以正常运行。我正在使用 mysql-connector-c++-noinstall-1.1.12

在调试活动构建配置时,如果我只是按 ctrl+f5(构建而不调试),我会收到警报/弹出窗口:

Microsoft Visual C++ Runtime Library
Program: ..\Database.exe
abort() has been called
(Press Retry to debug the application)

知道我在这里可能做错了什么吗?起初我认为这与我自己没有构建 mysql-connector 有关(根据我之前的帖子:尝试在 Windows 上构建 mysql-connector-cpp )。

编辑:我尝试使用两个不同的下载

mysql-connector-c++

  1. mysql-connector-c++-noinstall-1.1.12-winx64
  2. Connector C++ 8.0

它们分别产生以下错误/崩溃窗口:

  1. The ordinal 4699 could not be located in the dynamic link library c:\users\..\Database\x64\Debug\mysqlcppconn.dll
  2. The ordinal 4699 could not be located in the dynamic link library c:\WINDOWS\SYSTEM32\mysqlcppconn-7-vs14.dll

再次感谢!


完整来源:https://pastebin.com/GmsNEEFa

c++ mysql-connector
1个回答
1
投票

关于您之前的帖子:

应该能够构建OK;该特定错误表明您的链接命令无法找到您表示系统上有的 SSL 库。我的建议是使用 nmake 或创建一个 MSVS 项目(cmake 没有什么“错误”...但是如果您要使用 Microsoft 的编译器,通常使用 Microsoft 的工具会更容易)并且 - 最重要的是 - 使用正确的“链接路径”语法。

关于您当前的帖子:

  1. 问:您是否按照此处中的说明安装了 MySQL Connector?

  2. 我之前的建议仍然有效:如果您有 MSVS,则进入 IDE,创建一个 MSVS C++ 控制台模式项目,然后将您发布到 Pastebin 的代码剪切/粘贴到您的新项目中。 创建 MSVS 项目

  3. 进入 MSVS > 项目 > 属性并添加 a) MySQL 包含的路径,以及 b) MySql 库的路径。

  4. 将 MySql dynamic 库 (LIB/vs14/mysqlcppconn8.lib) 添加到链接命令中。请按照此处的说明进行操作。

  5. 发回您发现的内容。它应该可以工作。请准确指定您所做的事情,如果没有,请复制/粘贴准确错误消息。

  6. 一旦一切正常...然后根据需要创建“实际”构建脚本。至少你会有一个很好的“参考”可以依靠。

PS:

二进制 .msi 有两个 C/C++ 连接器库:一个静态库和一个动态 .dll。您可以链接到带有“.lib”文件的任一:“LIB/vs14/mysqlcppconn8.lib”用于 .dll,或“LIB/vs14/mysqlcppconn8-static.lib”用于静态库。

© www.soinside.com 2019 - 2024. All rights reserved.