проблема с установкой коннектора MySql C++ 8 на Ubuntu 18.04

Я пытаюсь начать работу с MySql Connector для C++ в Ubuntu 18.04. После загрузки пакетов Debian

libmysqlcppconn7_8.0.19-1ubuntu18.04_amd64.deb
libmysqlcppconn7-dbgsym_8.0.19-1ubuntu18.04_amd64.deb
libmysqlcppconn8-2_8.0.19-1ubuntu18.04_amd64.deb
libmysqlcppconn8-2-dbgsym_8.0.19-1ubuntu18.04_amd64.deb
libmysqlcppconn-dev_8.0.19-1ubuntu18.04_amd64.deb

с официальных страниц MySql, https://dev.mysql.com/downloads/connector/cpp/8.0.html я выдал команды

sudo apt install ./libmysqlcppconn7-dbgsym_8.0.19-1ubuntu18.04_amd64.deb
sudo apt install ./libmysqlcppconn8-2-dbgsym_8.0.19-1ubuntu18.04_amd64.deb
sudo apt install ./libmysqlcppconn-dev_8.0.19-1ubuntu18.04_amd64.deb

исходя из предположения, что пакеты с символами отладки (dbgsym) содержат все, поэтому их достаточно установить. Правильно ли это предположение или мне нужно установить и остальные пакеты?

Когда я ищу соответствующие заголовки и библиотеки в файловой системе, я нахожу

> cd /usr/include/mysql-cppconn-8; ls
jdbc  mysql  mysqlx
> ls mysqlx
common  common_constants.h  common.h  devapi  xapi.h  xdevapi.h

и т. д. и

> cd /usr/lib/x86_64-linux-gnu; ls *cppconn*
libmysqlcppconn8.so    libmysqlcppconn8.so.2.8.0.19  libmysqlcppconn.so    libmysqlcppconn.so.7.8.0.19
libmysqlcppconn8.so.2  libmysqlcppconn8-static.a     libmysqlcppconn.so.7  libmysqlcppconn-static.a

Тем не менее, я не могу даже скомпилировать минималистичный исходный файл, который включает один заголовок из mysqlx (например, #include <mysqlx/xdevapi.h>), но в итоге получаю кучу ошибок компоновщика. Я попытался адаптировать то, что сказано здесь https://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp-apps-general-considerations.html#connector-cpp-apps-tools

к моей настройке, то есть я пробовал команды компиляции, подобные следующим

g++ -I/usr/include -I/usr/include/mysql-cppconn-8 -I/usr/include/mysql-cppconn-8/mysqlx -L/usr/lib/x86_64-linux-gnu -lmysqlcppconn8 mysqlcnntest.cpp -o cnntest

но это дает очень длинную ошибку связи, начало которой читается

/tmp/ccJwmw6k.o: In function `mysqlx::abi2::r0::string::traits<char>::to_str[abi:cxx11](mysqlx::abi2::r0::string const&)':
mysqlcnntest.cpp:(.text._ZN6mysqlx4abi22r06string6traitsIcE6to_strB5cxx11ERKS2_[_ZN6mysqlx4abi22r06string6traitsIcE6to_strB5cxx11ERKS2_]+0x2e): undefined reference to `mysqlx::abi2::r0::string::Impl::to_utf8[abi:cxx11](mysqlx::abi2::r0::string const&)'

Есть ли у кого-нибудь предложения, что я могу сделать, чтобы это заработало? Я с радостью предоставлю любую другую информацию, которая может вам понадобиться. Спасибо заранее!!


person ctenar    schedule 19.02.2020    source источник
comment
Посмотрите здесь. Одна из ошибок в этом потоке была идентична вашей ошибке компоновщика. Было принято решение использовать другую, более новую библиотеку OpenSSL.   -  person FoggyDay    schedule 19.02.2020
comment
Спасибо, но видимо у меня последняя версия OpenSSL (1.1.1).   -  person ctenar    schedule 19.02.2020