簡體   English   中英

在 Windows、VS2K17 上調試的 mysql-connector c++ 應用程序

[英]Bulding mysql-connector c++ application in debug on Windows, VS2K17

我正在嘗試在調試模式下運行一個簡單的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

關於你之前的帖子:

應該能夠構建OK; 特定錯誤表明您的鏈接命令未能找到 SSL 庫,您表明您的系統上有該庫。 我的建議是使用 nmake 或創建一個 MSVS 項目(cmake 沒有什么“錯誤”......但是如果你打算使用微軟的編譯器,它通常會更容易使用微軟的工具)並且 - 最重要的是 - 使用正確的“鏈接路徑”語法。

關於您當前的帖子:

  1. 問:您是否按照此處的說明安裝了 MySQL 連接器?

  2. 我之前的建議仍然成立:如果你有 MSVS,那么進入 IDE,創建一個 MSVS C++ 控制台模式項目,並將你發布到 Pastebin 的代碼剪切/粘貼到你的新項目中。 創建 MSVS 項目

  3. 進入 MSVS > 項目 > 屬性並添加 a) MySQL 包含的路徑,以及 b) MySql 庫的路徑。

  4. 將 MySql動態庫 (LIB/vs14/mysqlcppconn8.lib) 添加到您的鏈接命令。 按照此處的說明操作。

  5. 發回你找到的東西。 應該工作。 准確說明您做什么,如果沒有,請復制/粘貼確切的錯誤消息。

  6. 一旦一切正常……然后根據需要創建“實際”構建腳本。 至少你會有一個很好的“參考”可以依靠。

'希望有幫助!

PS:

二進制 .msi 有兩個C/C++ 連接器庫:一個靜態庫和一個動態 .dll。 可以使用“.lib”文件鏈接到任一文件:“LIB/vs14/mysqlcppconn8.lib”用於.dll,或“LIB/vs14/mysqlcppconn8-static.lib”用於靜態庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM