проблема с установкой MySql C ++ коннектора 8 на Ubuntu 18.04 - PullRequest
1 голос
/ 19 февраля 2020

Я пытаюсь начать работу с 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

др c. и

> 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

Тем не менее я даже не могу скомпилировать минималистичный исходный файл c, который включает в себя один заголовок из 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&)'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...