0

I'm trying to write a c++ application that requires access to a MySQL database.

Until I updated the MySQL version from 5.7 to 8.0 I could use the framework provided here and suggested in this StackOverflow post

Since the MySQL upgrade, I get the following linker errors:

/usr/bin/ld: warning: libmysqlclient.so.18, needed by /usr/lib/libmysqlpp.so, not found (try using -rpath or -rpath-link)`mysql_num_fields@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_options@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_fetch_lengths@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_close@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_field_count@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_error@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_select_db@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_next_result@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_real_connect@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_get_server_info@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_fetch_row@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_init@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_get_client_info@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_thread_init@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_fetch_field@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_thread_id@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_get_proto_info@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_thread_end@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_info@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_kill@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_get_host_info@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_more_results@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_insert_id@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_ping@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_errno@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_use_result@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_free_result@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_store_result@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_set_server_option@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_real_query@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_affected_rows@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_num_rows@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_field_seek@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_real_escape_string@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_escape_string@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_ssl_set@libmysqlclient_18'
/usr/bin/ld: /usr/lib/libmysqlpp.so: undefined reference to `mysql_stat@libmysqlclient_18'

Any help on fixing the current issue or recommendation of a c++ MySQL framework that will work with MySQL version >= 8.0 will be greatly appreciated.

LZR
  • 948
  • 10
  • 28
  • 1
    Possible duplcate of [What is an undefined reference/unresolved external symbol error and how do I fix it?](https://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix) – πάντα ῥεῖ Oct 21 '18 at 18:55
  • @SidS, thanks, updated – LZR Oct 21 '18 at 18:57
  • @Ken libmysqlclient.so.18 is part of MySQL 5.7, after upgrade to MySQL 8 in /usr/lib/ folder I do have now libmysqlclient.so.20, I tried to create a symbolic link with "libmysqlclient.so.18" name but that didn't solve it, I'm trying to find a way to make it work without downgrading to MySQL 5.7 – LZR Oct 22 '18 at 02:21

0 Answers0