MySQL C++ Connector

MySQL C++ Connector

本文关键字:Connector C++ MySQL      更新时间:2023-10-16


我正在使用MySQL/C++连接器
我已经尝试了"d3l"在这个问题中提供的解决方案
然后我得到了以下错误:

tester.cpp:在函数"int main()"中:tester.cpp:12:20:warning:设置了变量"con"但未使用[-Wunused但设置了变量]sql::连接*con;^//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::affected_rows(st_mysql*)"中:(.text+0x164):对"mysql_affected_rows"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::autocommit(st_mysql*,char)"中:(.text+0x18d):对"mysql_autocommit"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::close(st_mysql*)"中:(.text+0x1ac):对"mysql_close"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::commit(st_mysql*)"中:(.text+0x1ca):对"mysql_commit"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::data_seek(st_mysql_res*,unsigned long-long)"中:(.text+0x1f3):对"mysql_data_seek"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::debug(char const*)"中:(.text+0x212):对"mysql_debug"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::mysql_errno(st_mysql*)"中:(.text+0x230):对"mysql_errno"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::error(st_mysql*)"中:(.text+0x24e):对"mysql_error"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::fetch_field(st_mysql_res*)"中:(.text+0x26c):对"mysql_fetch_field"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::fetch_field_direct(st_mysql_res*,unsigned int)"中:(.text+0x292):对"mysql_fetch_field_direct"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::fetch_lengths(st_mysql_res*)"中:(.text+0x2b0):对"mysql_fetch_length"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::fetch_row(st_mysql_res*)"中:(.text+0x2ce):对"mysql_fetch_row"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::field_count(st_mysql*)"中:(.text+0x2ec):对"mysql_field_count"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::free_result(st_mysql_res*)"中:(.text+0x30a):对"mysql_free_result"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::get_client_version()"中:(.text+0x31d):对"mysql_get_client_version"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::get_server_info(st_mysql*)"中:(.text+0x3c):对"mysql_get_server_info"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::get_server_version(st_mysql*)"中:(.text+0x35a):对"mysql_get_server_version"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::info(st_mysql*)"中:(.text+0x378):对"mysql_info"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::init(st_mysql*)"中:(.text+0x396):对"mysql_init"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::library_init(int,char**,char**)"中:(.text+0x3c4):对"mysql_server_init"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::library_end()"中:(.text+0x3d7):对"mysql_server_end"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::more_results(st_mysql*)"中:(.text+0x3f6):对"mysql_more_results"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::next_result(st_mysql*)"中:(.text+0x414):对"mysql_next_result"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::num_fields(st_mysql_res*)"中:(.text+0x432):对"mysql_num_fields"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::num_rows(st_mysql_res*)"中:(.text+0x450):对"mysql_num_rows"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::options(st_mysql*,mysql_option,void const*)"中:(.text+0x47e):对"mysql_options"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::query(st_mysql*,char const*)"中:(.text+0x4a7):对"mysql_query"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::ping(st_mysql*)"中:(.text+0x4c6):对"mysql_ping"的未定义引用/usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::real_connect(st_mysql*,char const*,char const*,char常量*,char常数*,无符号int,char const*,unsigned long)"中:(.text+0x519):对"mysql_real_connect"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::real_escape_string(st_mysql*,char*,charconst*,unsigned long)"中:(.text+0x550):对"mysql_real_eescape_string"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::real_query(st_mysql*,char const*,unsigned long)"中:(.text+0x581):对"mysql_real_query"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::rollback(st_mysql*)"中:(.text+0x5a0):对"mysql_rollback"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::sqlstate(st_mysql*)"中:(.text+0x5be):对"mysql_sqlstate"的未定义引用/usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::ssl_set(st_mysql*,char const*,char const*,char常量*,char常数*)"中:(.text+0x603):对"mysql_ssl_set"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::store_result(st_mysql*)"中:(.text+0x622):对"mysql_store_result"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::use_result(st_mysql*)"中:(.text+0x640):对"mysql_use_result"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::warning_count(st_mysql*)"中:(.text+0x65e):对"mysql_warning_count"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_affected_rows(st_mysql_stmt*)"中:(.text+0x67c):对"mysql_stmt_affected_rows"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_attr_set(st_mysql_stmt*,enum_stmt_attr_type,void const*)"中:(.text+0x6aa):对"mysql_stmt_attr_set"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_bind_param(st_mysql_stmt*,st_mysql_bind*)"中:(.text+0x6d3):对"mysql_stmt_bind_param"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_bind_result(st_mysql_stmt*,st_mysql_bind*)"中:(.text+0x6fd):对"mysql_stmt_bind_result"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_close(st_mysql_stmt*)"中:(.text+0x71c):对"mysql_stmt_close"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_data_seek(st_mysql_stmt*,unsigned long-long)"中:(.text+0x745):对"mysql_stmt_data_seek"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_errno(st_mysql_stmt*)"中:(.text+0x764):对"mysql_stmt_errno"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_error(st_mysql_stmt*)"中:(.text+0x782):对"mysql_stmt_error"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_execute(st_mysql_stmt*)"中:(.text+0x7a0):对"mysql_stmt_execute"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_fetch(st_mysql_stmt*)"中:(.text+0x7be):对"mysql_stmt_fetch"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_field_count(st_mysql_stmt*)"中:(.text+0x7dc):对"mysql_stmt_field_count"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_init(st_mysql*)"中:(.text+0x7fa):对"mysql_stmt_init"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_num_rows(st_mysql_stmt*)"中:(.text+0x818):对"mysql_stmt_num_rows"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_param_count(st_mysql_stmt*)"中:(.text+0x836):对"mysql_stmt_param_count"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_prepare(st_mysql_stmt*,char const*,unsigned long)"中:(.text+0x867):对"mysql_stmt_prepare"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_result_metadata(st_mysql_stmt*)"中:(.text+0x886):对"mysql_stmt_result_metadata"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_send_long_data(st_mysql_stmt*,unsigned int,char const*,unsunsigned long)"中:(.text+0x8ba):对"mysql_stmt_send_long_data"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_sqlstate(st_mysql_stmt*)"中:(.text+0x8d8):对"mysql_stmt_sqlstate"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::stmt_store_result(st_mysql_stmt*)"中:(.text+0x8f6):对"mysql_stmt_store_result"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::thread_end()"中:(.text+0x909):对"mysql_thread_end"的未定义引用//usr/lib/libmysqlcppconn.a(mysql_client_api.cpp.o):在函数"sql::mysql::NativeAPI::LibmysqlStaticProxy::thread_init()"中:(.text+0x91d):对"mysql_thread_init"的未定义引用collect2:error:ld返回1退出状态

我正在运行Ubuntu 14。
请帮助。

编辑:正如"mukunda"所说:"通常连接器/c++已经静态链接到libmysql,这是构建源时的默认设置">

所以我用编译它

sudo g++-Wall-I/usr/include/cppconn-o testapp tester.cpp

然后错误减少到只有:

tester.cpp:在函数"int main()"中:tester.cpp:12:20:warning:设置了变量"con"但未使用[-Wunused但设置了变量]sql::连接*con;^/tmp/ccSdYfYy.o:在函数"main"中:tester.cpp:(.text+0xa):对"get_driver_instance"的未定义引用collect2:错误:ld返回1退出状态

再次编辑:
这是构建此代码的必要步骤:

#include <stdlib.h>
#include <iostream>
#include <mysql_connection.h>
#include <driver.h>
#include <exception.h>
#include <resultset.h>
#include <statement.h>
using namespace sql;
int main(void){
sql::Driver *driver;
sql::Connection *con;
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306","root","YOURPASSWORD");
return 0;
}
1.安装mysqlcppconn:sudo apt-get-Install libmysqlcppcconn-dev2.安装mysqlclient:sudo apt-get Install libmysqlclient dev libmysqlclient183.在终端中编译,使用:sudo g++-Wall-I/usr/include/cppconn-o testapp tester.cpp-L/usr/lib-lmysqlcppcconn-lmysqlclient

感谢Mike和Biffen。

libmysqlcppconnen只是libmysqlclient的C++包装器。您需要将两者链接起来,以便它能够工作(以及任何其他依赖项)。