Visual Studio 2017 Linux ( VisualGDB + centOS)环境下连接Mysql的方法 (undefined reference to `mysql_init')

1 首先要安装mysql 和 mysql-devel

  mysql就不说了,安装mysql-del的命令如下 yum install mysql-devel

2 再来要在cpp里面找到到头文件mysql.h

先用命令查看安装的位置 find / -name mysql.h

会看到很多个,配合VisualGDB的设置找一个就行了,例如我使用的是

/usr/include/c++/4.8.5/mysql 下的

Visual Studio 2017 Linux ( VisualGDB + centOS)环境下连接Mysql的方法 (undefined reference to `mysql_init')_第1张图片

Visual Studio 2017 Linux ( VisualGDB + centOS)环境下连接Mysql的方法 (undefined reference to `mysql_init')_第2张图片

 

只要在cpp文件中找得到就行了

运行后,会出现报错信息

undefined reference to `mysql_init'

undefined reference to `mysql_real_connect'

undefined reference to `mysql_query'

undefined reference to `mysql_close'

这几个信息是同一个意思,就是头文件里的mysql_init等方法找不到实现类,找不到 mysqlclient。

这时候,回到CentOs输入 mysql_config,会显示mysql连接还需要的命令

Visual Studio 2017 Linux ( VisualGDB + centOS)环境下连接Mysql的方法 (undefined reference to `mysql_init')_第3张图片

其中我们需要的就是

-L/usr/local/mysql/lib -lmysqlclient -lpthread -lm -lrt -ldl

(只写lmysqlclient也可以: -L/usr/local/mysql/lib -lmysqlclient)

然后我们进入Visual Studio

在项目名称按右键,点击properties,找到Linker的Command Line,在Additional Options的地方输入上面那一行就行了

Visual Studio 2017 Linux ( VisualGDB + centOS)环境下连接Mysql的方法 (undefined reference to `mysql_init')_第4张图片

最后运行测试,首先在mysql里新建一个test数据库,然后建一个student表,这里的登录账号密码都是root

CREATE TABLE `student` (
  `name` varchar(255) DEFAULT NULL,
  `pwd` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

最后运行测试的cpp文件,在student表里写入一条数据zhangsan 123

#include 
#include 
#include 
using namespace std;
int main()
{
	MYSQL conn;
	int res;
	mysql_init(&conn);
	if (mysql_real_connect(&conn, "localhost", "root", "root", "test", 0, NULL, CLIENT_FOUND_ROWS)) //"root":数据库管理员 "":root密码 "test":数据库的名字
	{
		cout << "connect success!" << endl;
		res = mysql_query(&conn, "insert into student values('zhangsan','123')");//在student表插入一条数据
		if (res)
		{
			cout << "error!" << endl;
		}
		else
		{
			cout << "OK!" << endl;
		}
		mysql_close(&conn);
	}
	return 0;
}

控制台输出

connect success!
OK!

查询数据库写入资料成功

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(C++,mysql,linux)