Как собрать MySQL-коннектор c ++ с VS 2010 на компьютере с Windows x64? - PullRequest
3 голосов
/ 13 февраля 2012

Кажется, это PITA, чтобы получить то, что я хочу: работающий MySQL Connector / C ++ на компьютере с Windows x64.

Что я уже пробовал:

  • Я впервые попробовалбинарные пакеты на сайте загрузки MySQL, где мне пришлось добавить отсутствующий include-файл (sqlstring.h) из другого места (см. здесь )
  • Затем мой тестовый код скомпилирован,но не запустился из-за отсутствия libmysql.dll (опять не включенного в бинарный пакет)
  • Я обнаружил, что пакет Connector / C содержал эту dll, поэтому я взял ее оттуда.Теперь мой коннектор работает нормально ... в режиме отладки.Но действительно странные вещи случаются, когда я нахожусь в режиме Release.Иногда приложение закрывается без предупреждения при попытке подключения.Иногда это говорит мне, что у меня есть ошибка синтаксиса SQL в моем очень простом утверждении (SELECT * FROM sometable), которое прекрасно работает в режиме отладки.
  • Затем я обнаружил здесь , что это предпочтительнеесобрать разъем из источника, поэтому я попробовал это.Для коннектора C ++ требуется C-коннектор, и после некоторой проблемы (мне пришлось пропатчить CMakeFile.txt из-за этой ошибки ), мне удалось построить коннектор C.
  • Мне также удалосьсоздать решение VS с помощью CMake для коннектора C ++, но теперь я застрял.Слишком много ошибок сборки из-за отсутствия некоторых включаемых файлов ... Я не знаю, является ли это моей конфигурацией CMake или она не работает с VS2010 или просто глючит.

Это так необычноиспользовать соединитель MySQL C ++ (построенный с VS2010) на машине Win x64?Должен быть более простой способ заставить его работать, верно?

Буду благодарен за любые подсказки.

ОБНОВЛЕНИЕ

Я думаю, что ядолжен быть более точным в моих ошибках сборки:

Сначала я добавил

<path_to_mysql_connector_cpp_build>
<path_to_mysql_connector_cpp_build>\cppconn
<path_to_mysql_connector_cpp_build>\driver\nativeapi

в каталоги mysqlcppconn и mysqlcppconn-static проекта, чтобы найти config.h,cppconn/config.h и driver/nativeapi/binding_config.h включаемые файлы.

Но сейчас какой-то файл my_global.h отсутствует, и я не могу его найти.Похоже, что он находится во включаемых файлах для сервера MySQL, но я подумал, что сервер не нужен для соединителя.

И я только что нашел комментарий здесь , в котором говорится, чтоСоединитель C ++ еще не совместим с VS2010 (это было в октябре 2011 года).

Так что я могу сделать, если предварительно собранные двоичные файлы с сайта загрузки MySQL не работают должным образом?

1 Ответ

1 голос
/ 23 февраля 2012

В итоге я использовал MySQL Connector / C и написал свою собственную оболочку C ++.На данный момент это очень просто и пропускает много функциональности, но я буду добавлять функциональность каждый раз, когда мне придется ее использовать.

Мне все равно не очень нравился MySQL Connector / C ++, так как он не былзапрограммирован в стиле RAII.

...