Bulding MySQL-коннектор C ++ приложения в отладке на Windows, VS2K17 - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь запустить простое приложение mysql-connector (c ++) в режиме отладки, но кажется, что оно перестало работать, когда оно достигает следующей строки (см. Полный исходный код ниже):

pstmt = con->prepareStatement(query);

и, используя локальный отладчик Windows в Visual Studio, он останавливается [в этой строке выше] с этим исключением:

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

Это же приложение работает нормально, еслиЯ установил свою активную конфигурацию сборки на Release (VS 2017, Win10 / 64bit).Я использую 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 самостоятельно (согласно моему предыдущему сообщению здесь: Попытка собрать mysql-connector-cpp в Windows ).

РЕДАКТИРОВАТЬ: я пыталсядве разные загрузки 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

1 Ответ

0 голосов
/ 25 февраля 2019

Относительно вашего предыдущего поста:

Вы должны быть в состоянии построить ОК;конкретная ошибка указала, что вашей команде ссылки не удалось найти библиотеку 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" для статической библиотеки.

...