Я пытаюсь начать работу с 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&)'
Есть ли у кого-нибудь предложения, что я могу сделать, чтобы это заработало? Я с радостью предоставлю любую другую информацию, которая может вам понадобиться. Спасибо заранее!!