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