MySql Connector-C ++ не связывает в QtCreator, но отлично работает локально на Raspberry Pi3

0

Во-первых, заблаговременно за то, что вы хотя бы прочитали этот вопрос.

Во-вторых, не стесняйтесь называть меня идиотом, если это не "разумно",

Теперь о проблемах...

Я запускаю Ubuntu 16.04 (64 бит) с QT Creator в качестве моей IDE, и в целом он отлично работает. Я могу перекрестно скомпилировать Raspberry Pi3 (запуск raspbian), а также скомпилировать плагины для X-Plane.

Все было здорово, пока мне не понадобилось реализовать MySql в моем проекте. Это когда все пошло на юг.

Я не могу использовать библиотеку Qt для этого, поскольку X-Plane не любит ничего Qt, связанного в своих плагинах. Но это нормально, у меня есть коннектор-С++, работающий на этой машине, и он подключается к моему серверу MySql и делает все, что он должен.

Я думаю, что я прочитал почти каждый форум и смотрел каждое видео на YouTube, но не могу заставить Qt Creator скомпилировать с коннектором для малины pi.

Я написал/скомпилировал тестовое приложение локально (с g++) на pi, и он отлично работает. Однако почему-то (возможно, правительственный заговор?) Он отказывается связывать библиотеки при компиляции под Qt Creator.

Ошибка, которую я получаю при компиляции в QtCreator: undefined ссылка на 'get_driver_instance'

В настоящее время я выполнил инструкции по созданию кросс-компилятора здесь: https://wiki.qt.io/RaspberryPi2EGLFS

Загрузите код разъема отсюда: git clone https://github.com/mysql/mysql-connector-cpp

Я выполнил инструкции для компиляции коннектора-С++ здесь: https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-installation-source-unix.html

И я ударил голову 1000х на кирпичную стену здесь: (картина с окровавленной кровью стены недоступна)

Кроме того, я попытался скомпилировать коннектор на моем компьютере Ubuntu с путями к pi sysroot и т.д., Но я думаю, что он сделал 64-битную версию, которая заставляет Qt Creator иметь фиктивную косу "непризнанный формат".

Я надеюсь, что это просто у меня "старший момент", и кто-то может указать мне в правильном направлении.

Чтобы сохранить ненужные журналы/код, я буду ждать, пока кто-то его попросит, а затем скопируйте/вставьте то, что им нужно.

Опять же, спасибо заранее и знаю, что я буду бесконечно благодарен за любой свет по этому поводу (желательно, прежде чем я пойду даже безумец)

  • 0
    @ Homer, какой MySQL-коннектор-c ++ вы использовали, есть как 64-битные, так и 32-битные коннекторы, ваша проблема может быть в этом. проверьте, что одно уже не удалось, и переключитесь на другое.
  • 0
    Я использую исходный код, полученный из git clone github.com/mysql/mysql-connector-cpp
Показать ещё 3 комментария
Теги:
qt
qt-creator

1 ответ

0

Хорошо после 2 недель боли, я решил эту проблему. Вот что я считаю проблемой:

Во-первых, я обнаружил, что mysqlcppconn не нужен (по крайней мере для меня) и использовал библиотеки mysql в /usr/lib

Во-вторых, символические ссылки на libmysqlclient.so.6.0.22 были по умолчанию: libmysqlclient.so.6 → libmysqlclient.so.6.0.22

Компилятор искал libmysqlclient.so, которого не было. Поэтому я создал ссылку (libmysqlclient.so → libmysqlclient.so.6), и она сработала!

Спасибо всем, кто помог.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню