Visual Studio配置MySQL库
创建项目
打开Visual Studio,点击菜单栏的文件,出现下拉菜单,依次选择新建–>项目。
此时弹出新建项目窗口,在左边依次展开已安装–>模板–>C/C++,于右边,Visual Studio 2017选择空项目,Visual Studio 2015及以下版本选择Win32控制台应用程序,在项目名称输入框填写Build,选择项目存放的位置,最后点击确定。
完成上述步骤后,Visual Studio 2017自动创建项目,而Visual Studio 2015及以下版本弹出Win32应用程序向导窗口,点击下一步,勾选附加选项的空项目,去掉安全开发生命周期(SDL)检查的勾选,最后点击完成,自动创建项目。
添加源文件
右击解决方案资源管理器中项目Build的源文件文件夹,弹出右键菜单,依次选择添加–>新建项,如下图所示:
此时弹出添加选项窗口,在左边依次展开已安装–>Visual C++,于右边选择C++ 文件(.cpp),在名称输入框中填写main.cpp,最后点击添加。
引用外部库方式
提供绝对路径和相对路径,共两种于Visual Studio开发环境引用外部库的方式。
以绝对路径方式引用MySQL库
这种方法虽然步骤少,操作简单,不过不具备可移植性(此处所谓的可移植性,是把项目放在另一台计算机另一个环境上编译运行)。
右击解决方案资源管理器的项目Build,如下图所示:
在弹出菜单最下面,选择属性,弹出项目属性页,在左边依次展开属性配置–>C/C++,选中常规,于右边的附加包含目录填写MySQL解压后根目录的include文件夹路径。
我的include路径是E:/Program Files (x86)/mysql-5.7.19-win32/include,如下图所示:
再展开左边链接器,点击常规,在右边的附加库目录填写MySQL解压后根目录的lib文件夹路径。
我的lib路径是E:/Program Files (x86)/mysql-5.7.19-win32/lib,如下图所示:
最后点击确定,完成在Visual Studio开发环境以绝对路径引用MySQL库的步骤。
以相对路径的方式引用MySQL库
此种方法相对于绝对路径来说步骤多,操作复杂,但具有可移植性,即在另一台计算机的相同开发环境下不需改动(或者做少许改动)就可以编译运行。
在Build项目的源代码目录中创建include和lib文件夹,接着在lib文件夹中创建mysql文件夹,把位于MySQL根目录的include文件夹复制到源代码目录的include文件夹中,并重命名为mysql,把MySQL根目录下lib文件夹中的libmysql.lib文件复制到源代码目录的lib/mysql文件夹中。
一般只链接libmysql.lib,其他库暂时不必复制,当需要用到其他库的时候,再添加至项目源代码目录的lib/mysql文件夹。
安装MySQL之后,我的include和lib文件夹在E:\Program Files (x86)\mysql-5.7.19-win32,如下图所示:
Visual Studio创建的Build项目位于E:\Microsoft Visual Studio Projects\Build\Build,如下图所示:
接下来的操作与绝对路径引用方式相似,打开项目属性页,在左边依次展开属性配置–>C/C++,点击常规,于右边的附加包含目录填写include/mysql。如下图所示:
左边再展开链接器,点击常规,于右边的附加库目录填写lib/mysql。如下图所示:
最后点击确定,完成在Visual Studio开发环境以相对路径引用MySQL库的步骤。
测试配置
完成以上配置之后,在项目的源文件中编写如下代码,连接数据库以验证环境是否配置正确。
#include <stdio.h>
#include <conio.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
int main(int argc, char *argv[])
{
char host[] = "localhost";
char szDatabase[] = "mysql"; // 已有数据库名
char username[] = "root";
char password[] = "eterfree"; // 管理员密码
unsigned int port = 3306;
MYSQL *conn;
if ((conn = mysql_init((MYSQL*)0))
&& (mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk")==0)
&& mysql_real_connect(conn, host, username, password, szDatabase, port, NULL, 0))
printf("连接数据库成功!\n");
else
{
printf("连接数据库失败!\n");
mysql_close(conn);
getch();
return -1;
}
mysql_close(conn);
getch();
return 0;
}
如果使用预编译头,需要在源文件最前面引用预编译头文件。
Visual Studio 2017之前,预编译头文件默认名称为stdafx.h。
#include "stdafx.h"
Visual Studio 2019的预编译头文件默认名称为pch.h。
#include "pch.h"
如果开发环境是Visual Studio 2017,需要关闭项目属性的安全开发生命周期检查。
进入项目的属性页,在左边展开属性配置,点击C/C++,于右边找到SDL检查,选择其选项的否(/sdl-),最后点击确定。