Quantcast
Channel: MySQL Forums - Connector/C++
Viewing all articles
Browse latest Browse all 527

cmake error when using xdevapi (no replies)

$
0
0
hello there

i finally managed to include this lib in my project by installing

mysql-apt-config_0.8.24-1_all.deb
mysql-community-client-plugins
libmysqlcppconn8-2_8.0.31-1ubuntu22.04_amd64.deb
libmysqlcppconn9_8.0.31-1ubuntu22.04_amd64.deb
libmysqlcppconn-dev_8.0.31-1ubuntu22.04_amd64.deb

i dont know why it has to be so complicated

now when i work in IDE everything seems fine i can navigate myself to declarations in /usr/include/mysql-cppconn-8/mysqlx/xdevapi.h but when im trying to build and compile im getting error

this is very simplified representation of my cmake config

add_library(MySQL MySQL.h MySQL.cpp)
target_link_libraries(MySQL PUBLIC Config mysqlcppconn)
add_executable(Auth Auth/Main.cpp)

inside MySQL.cpp i have

#include <mysql-cppconn-8/mysqlx/xdevapi.h>

just including it already causes this

FAILED: Servers/Auth
: && /usr/bin/c++ -g Servers/CMakeFiles/Auth.dir/Auth/Main.cpp.o -o Servers/Auth Core/Models/Auth/libAccount.a Core/Models/libModel.a Database/MySQL/libMySQL.a Config/libConfig.a Support/libDotEnv.a -lmysqlcppconn && :
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): warning: relocation against `_ZTVN6mysqlx4abi22r05DbDocE' in read-only section `.text._ZN6mysqlx4abi22r05DbDocD2Ev[_ZN6mysqlx4abi22r05DbDocD5Ev]'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::string::traits<char>::to_str[abi:cxx11](mysqlx::abi2::r0::string const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/common.h:225: undefined reference to `mysqlx::abi2::r0::string::Impl::to_utf8[abi:cxx11](mysqlx::abi2::r0::string const&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::DbDoc::DbDoc()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/document.h:107: undefined reference to `vtable for mysqlx::abi2::r0::DbDoc'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::DbDoc::~DbDoc()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/document.h:81: undefined reference to `vtable for mysqlx::abi2::r0::DbDoc'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::Value::print(std::ostream&) const':
/usr/include/mysql-cppconn-8/mysqlx/devapi/document.h:508: undefined reference to `mysqlx::abi2::r0::common::Value::print(std::ostream&) const'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE[_ZTVN6mysqlx4abi22r05ValueE]+0x18): undefined reference to `typeinfo for mysqlx::abi2::r0::common::Value'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE[_ZTVN6mysqlx4abi22r05ValueE]+0x20): undefined reference to `mysqlx::abi2::r0::common::Value::print(std::ostream&) const'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTIN6mysqlx4abi22r05ValueE[_ZTIN6mysqlx4abi22r05ValueE]+0x28): undefined reference to `typeinfo for mysqlx::abi2::r0::common::Value'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

and when i add actual code to execute simple select it gives this

FAILED: Servers/Auth
: && /usr/bin/c++ -g Servers/CMakeFiles/Auth.dir/Auth/Main.cpp.o -o Servers/Auth Core/Models/Auth/libAccount.a Core/Models/libModel.a Database/MySQL/libMySQL.a Config/libConfig.a Support/libDotEnv.a -lmysqlcppconn && :
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): warning: relocation against `_ZTVN6mysqlx4abi22r06common5ValueE' in read-only section `.text._ZN6mysqlx4abi22r06common5ValueD1Ev[_ZN6mysqlx4abi22r06common5ValueD1Ev]'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::common::Settings_impl::Data::Data()':
/usr/include/mysql-cppconn-8/mysqlx/common/settings.h:217: undefined reference to `mysqlx::abi2::r0::common::Settings_impl::Data::init_connection_attr()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::common::Value::~Value()':
/usr/include/mysql-cppconn-8/mysqlx/common/value.h:61: undefined reference to `vtable for mysqlx::abi2::r0::common::Value'
/usr/bin/ld: /usr/include/mysql-cppconn-8/mysqlx/common/value.h:61: undefined reference to `vtable for mysqlx::abi2::r0::common::Value'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::string::traits<char>::from_str(mysqlx::abi2::r0::string&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/common.h:220: undefined reference to `mysqlx::abi2::r0::string::Impl::from_utf8(mysqlx::abi2::r0::string&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::string::traits<char>::to_str[abi:cxx11](mysqlx::abi2::r0::string const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/common.h:225: undefined reference to `mysqlx::abi2::r0::string::Impl::to_utf8[abi:cxx11](mysqlx::abi2::r0::string const&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::DbDoc::DbDoc()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/document.h:107: undefined reference to `vtable for mysqlx::abi2::r0::DbDoc'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::DbDoc::~DbDoc()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/document.h:81: undefined reference to `vtable for mysqlx::abi2::r0::DbDoc'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::Value::print(std::ostream&) const':
/usr/include/mysql-cppconn-8/mysqlx/devapi/document.h:508: undefined reference to `mysqlx::abi2::r0::common::Value::print(std::ostream&) const'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::DbDoc::DbDoc(mysqlx::abi2::r0::DbDoc const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/document.h:81: undefined reference to `vtable for mysqlx::abi2::r0::DbDoc'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::Row::get(unsigned long)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/row.h:162: undefined reference to `mysqlx::abi2::r0::internal::Row_detail::get_val(unsigned long)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::Row::set(unsigned long, mysqlx::abi2::r0::Value const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/row.h:180: undefined reference to `mysqlx::abi2::r0::internal::Row_detail::get_val(unsigned long)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::Row::operator[](unsigned long)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/row.h:208: undefined reference to `mysqlx::abi2::r0::internal::Row_detail::ensure_impl()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Row_result_detail<mysqlx::abi2::r0::Columns>::~Row_result_detail()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/result.h:314: undefined reference to `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::TableSelect::TableSelect(mysqlx::abi2::r0::Table&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/table_crud.h:266: undefined reference to `mysqlx::abi2::r0::internal::Crud_factory::mk_select(mysqlx::abi2::r0::Table&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Schema_detail::Name_src::~Name_src()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/session.h:178: undefined reference to `mysqlx::abi2::r0::internal::Query_src::~Query_src()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Schema_detail::Table_src::Table_src(mysqlx::abi2::r0::Schema const&, mysqlx::abi2::r0::string const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/session.h:205: undefined reference to `mysqlx::abi2::r0::internal::Schema_detail::Name_src::Name_src(mysqlx::abi2::r0::Schema const&, mysqlx::abi2::r0::internal::Schema_detail::Obj_type, mysqlx::abi2::r0::string const&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Session_detail::~Session_detail()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/session.h:379: undefined reference to `mysqlx::abi2::r0::internal::Session_detail::close()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::Session::Session(mysqlx::abi2::r0::SessionSettings)':
/usr/include/mysql-cppconn-8/mysqlx/xdevapi.h:1684: undefined reference to `mysqlx::abi2::r0::internal::Session_detail::Session_detail(mysqlx::abi2::r0::common::Settings_impl&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `void mysqlx::abi2::r0::internal::Row_detail::set_values<mysqlx::abi2::r0::Value>(unsigned long, mysqlx::abi2::r0::Value)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/row.h:96: undefined reference to `mysqlx::abi2::r0::internal::Row_detail::ensure_impl()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Row_result_detail<mysqlx::abi2::r0::Columns>::get_row()':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/result.h:372: undefined reference to `mysqlx::abi2::r0::internal::Row_result_detail<mysqlx::abi2::r0::Columns>::iterator_next()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Result_common<mysqlx::abi2::r0::internal::Row_result_detail<mysqlx::abi2::r0::Columns> >::Result_common(mysqlx::abi2::r0::common::Result_init&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/result.h:149: undefined reference to `mysqlx::abi2::r0::internal::Row_result_detail<mysqlx::abi2::r0::Columns>::Row_result_detail(mysqlx::abi2::r0::common::Result_init&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Iterator<mysqlx::abi2::r0::internal::Schema_detail::Table_src, mysqlx::abi2::r0::Table, long, mysqlx::abi2::r0::Table*, mysqlx::abi2::r0::Table&>::operator*() const':
/usr/include/mysql-cppconn-8/mysqlx/devapi/common.h:441: undefined reference to `mysqlx::abi2::r0::internal::Schema_detail::Table_src::iterator_get()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `void mysqlx::abi2::r0::internal::Settings_detail<mysqlx::abi2::r0::internal::Settings_traits>::set<true, mysqlx::abi2::r0::SessionOption, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mysqlx::abi2::r0::SessionOption::Enum, unsigned int&, mysqlx::abi2::r0::SessionOption::Enum, mysqlx::abi2::r0::string const&>(mysqlx::abi2::r0::SessionOption, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mysqlx::abi2::r0::SessionOption::Enum&&, unsigned int&, mysqlx::abi2::r0::SessionOption::Enum&&, mysqlx::abi2::r0::string const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/settings.h:68: undefined reference to `mysqlx::abi2::r0::internal::Settings_detail<mysqlx::abi2::r0::internal::Settings_traits>::do_set(std::__cxx11::list<std::pair<int, mysqlx::abi2::r0::Value>, std::allocator<std::pair<int, mysqlx::abi2::r0::Value> > >&&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `void mysqlx::abi2::r0::internal::Settings_detail<mysqlx::abi2::r0::internal::Settings_traits>::set<true, mysqlx::abi2::r0::SessionOption, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(mysqlx::abi2::r0::SessionOption, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/settings.h:68: undefined reference to `mysqlx::abi2::r0::internal::Settings_detail<mysqlx::abi2::r0::internal::Settings_traits>::do_set(std::__cxx11::list<std::pair<int, mysqlx::abi2::r0::Value>, std::allocator<std::pair<int, mysqlx::abi2::r0::Value> > >&&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `void mysqlx::abi2::r0::internal::Settings_detail<mysqlx::abi2::r0::internal::Settings_traits>::set<true, mysqlx::abi2::r0::SessionOption, mysqlx::abi2::r0::string const&>(mysqlx::abi2::r0::SessionOption, mysqlx::abi2::r0::string const&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/detail/settings.h:68: undefined reference to `mysqlx::abi2::r0::internal::Settings_detail<mysqlx::abi2::r0::internal::Settings_traits>::do_set(std::__cxx11::list<std::pair<int, mysqlx::abi2::r0::Value>, std::allocator<std::pair<int, mysqlx::abi2::r0::Value> > >&&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `void mysqlx::abi2::r0::internal::Args_processor<mysqlx::abi2::r0::internal::Row_detail, std::pair<mysqlx::abi2::r0::internal::Row_detail::Impl*, unsigned long>*>::process_args1<mysqlx::abi2::r0::Value, , (void*)0>(std::pair<mysqlx::abi2::r0::internal::Row_detail::Impl*, unsigned long>*, mysqlx::abi2::r0::Value)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/common.h:862: undefined reference to `mysqlx::abi2::r0::internal::Row_detail::process_one(std::pair<mysqlx::abi2::r0::internal::Row_detail::Impl*, unsigned long>*, mysqlx::abi2::r0::Value const&)'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o): in function `mysqlx::abi2::r0::internal::Iterator<mysqlx::abi2::r0::internal::Schema_detail::Table_src, mysqlx::abi2::r0::Table, long, mysqlx::abi2::r0::Table*, mysqlx::abi2::r0::Table&>::Iterator(mysqlx::abi2::r0::internal::Schema_detail::Table_src&)':
/usr/include/mysql-cppconn-8/mysqlx/devapi/common.h:404: undefined reference to `mysqlx::abi2::r0::internal::Query_src::iterator_next()'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE[_ZTVN6mysqlx4abi22r05ValueE]+0x18): undefined reference to `typeinfo for mysqlx::abi2::r0::common::Value'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE[_ZTVN6mysqlx4abi22r05ValueE]+0x20): undefined reference to `mysqlx::abi2::r0::common::Value::print(std::ostream&) const'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTIN6mysqlx4abi22r08internal13Schema_detail8Name_srcE[_ZTIN6mysqlx4abi22r08internal13Schema_detail8Name_srcE]+0x10): undefined reference to `typeinfo for mysqlx::abi2::r0::internal::Query_src'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTIN6mysqlx4abi22r08internal17Row_result_detailINS1_7ColumnsEEE[_ZTIN6mysqlx4abi22r08internal17Row_result_detailINS1_7ColumnsEEE]+0x10): undefined reference to `typeinfo for mysqlx::abi2::r0::internal::Result_detail'
/usr/bin/ld: Database/MySQL/libMySQL.a(MySQL.cpp.o):(.data.rel.ro._ZTIN6mysqlx4abi22r05ValueE[_ZTIN6mysqlx4abi22r05ValueE]+0x28): undefined reference to `typeinfo for mysqlx::abi2::r0::common::Value'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

anybody knows what to do ?

Viewing all articles
Browse latest Browse all 527

Trending Articles